<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          Python處理辦公自動化的10大場景

          共 4115字,需瀏覽 9分鐘

           ·

          2022-06-10 03:35

          知乎上有個熱門問題,Python 未來會成為大眾辦公常用編程工具嗎?

          在編程世界里,Python已經(jīng)是名副其實的網(wǎng)紅了。曾經(jīng)一個學(xué)漢語言的研究生,問我怎么學(xué)Python,因為他們課程論文里需要用到文本分析,用Python來跑數(shù)據(jù)。我和他說,你看兩天語法,就可以上手開干,不會的再查資料。后來這位同學(xué)半個月就用Python把論文數(shù)據(jù)搞好了。

          所以Python最大優(yōu)勢在于容易學(xué),門檻比Java、C++低非常多,給非程序員群體提供了用代碼干活的可能性。當(dāng)然Python能成為大眾編程工具,不光光是因為易學(xué),還因為Python有成千上萬的工具包,遍布各行各業(yè)。

          舉10幾個辦公自動化常見的例子,Python都能高效處理。

          ?

          如果小伙伴們需要Python辦公學(xué)習(xí)文檔,可以在后臺回復(fù)【c】,領(lǐng)取打包文件。

          ?

          1、Python處理Excel數(shù)據(jù)

          可以使用pandas、xlwings、openpyxl等包來對Excel進(jìn)行增刪改查、格式調(diào)整等操作,甚至可以使用Python函數(shù)來對excel數(shù)據(jù)進(jìn)行分析。

          讀取excel表格

          import?xlwings?as?xw
          wb?=?xw.Book()??#?this?will?create?a?new?workbook
          wb?=?xw.Book('FileName.xlsx')??#?connect?to?a?file?that?is?open?or?in?the?current?working?directory
          wb?=?xw.Book(r'C:\path\to\file.xlsx')??#?on?Windows:?use?raw?strings?to?escape?backslashes

          將matplotlib繪圖寫入excel表格

          import?matplotlib.pyplot?as?plt
          import?xlwings?as?xw

          fig?=?plt.figure()
          plt.plot([1,?2,?3])

          sheet?=?xw.Book().sheets[0]
          sheet.pictures.add(fig,?name='MyPlot',?update=True)

          2、Python處理PDF文本

          PDF幾乎是最常見的文本格式,很多人有各種處理PDF的需求,比如制作PDF、獲取文本、獲取圖片、獲取表格等。Python中有PyPDF、pdfplumber、ReportLab、PyMuPDF等包可以輕松實現(xiàn)這些需求。

          提取PDF文字

          import?PyPDF2

          pdfFile?=?open('example.pdf','rb')
          pdfReader?=?PyPDF2.PdfFileReader(pdfFile)
          print(pdfReader.numPages)
          page?=?pdfReader.getPage(0)
          print(page.extractText())
          pdfFile.close()

          提取PDF表格

          #?提取pdf表格
          import?pdfplumber
          with?pdfplumber.open("example.pdf")?as?pdf:
          ????page01?=?pdf.pages[0]?#指定頁碼
          ????table1?=?page01.extract_table()#提取單個表格
          ????#?table2?=?page01.extract_tables()#提取多個表格
          ????print(table1)

          3、Python處理Email

          在Python中可以使用smtplib配合email庫,來實現(xiàn)郵件的自動化傳輸,非常方便。

          import?smtplib
          import?email

          #?負(fù)責(zé)將多個對象集合起來
          from?email.mime.multipart?import?MIMEMultipart
          from?email.header?import?Header

          #?SMTP服務(wù)器,這里使用163郵箱
          mail_host?=?"smtp.163.com"
          #?發(fā)件人郵箱
          mail_sender?=?"******@163.com"
          #?郵箱授權(quán)碼,注意這里不是郵箱密碼,如何獲取郵箱授權(quán)碼,請看本文最后教程
          mail_license?=?"********"
          #?收件人郵箱,可以為多個收件人
          mail_receivers?=?["******@qq.com","******@outlook.com"]

          mm?=?MIMEMultipart('related')
          #?郵件正文內(nèi)容
          body_content?=?"""你好,這是一個測試郵件!"""
          #?構(gòu)造文本,參數(shù)1:正文內(nèi)容,參數(shù)2:文本格式,參數(shù)3:編碼方式
          message_text?=?MIMEText(body_content,"plain","utf-8")
          #?向MIMEMultipart對象中添加文本對象
          mm.attach(message_text)

          #?創(chuàng)建SMTP對象
          stp?=?smtplib.SMTP()
          #?設(shè)置發(fā)件人郵箱的域名和端口,端口地址為25
          stp.connect(mail_host,?25)??
          #?set_debuglevel(1)可以打印出和SMTP服務(wù)器交互的所有信息
          stp.set_debuglevel(1)
          #?登錄郵箱,傳遞參數(shù)1:郵箱地址,參數(shù)2:郵箱授權(quán)碼
          stp.login(mail_sender,mail_license)
          #?發(fā)送郵件,傳遞參數(shù)1:發(fā)件人郵箱地址,參數(shù)2:收件人郵箱地址,參數(shù)3:把郵件內(nèi)容格式改為str
          stp.sendmail(mail_sender,?mail_receivers,?mm.as_string())
          print("郵件發(fā)送成功")
          #?關(guān)閉SMTP對象
          stp.quit()

          4、Python處理數(shù)據(jù)庫

          數(shù)據(jù)庫是我們常用的辦公應(yīng)用,Python中有各種數(shù)據(jù)庫驅(qū)動接口包,支持對數(shù)據(jù)庫的增刪改查、運維管理工作。比如說pymysql包對應(yīng)MySQL、psycopg2包對應(yīng)PostgreSQL、pymssql包對應(yīng)sqlserver、cxoracle包對應(yīng)Oracle、PyMongo包對應(yīng)MongoDB等等。

          對MySQL的連接查詢

          import?pymysql

          #?打開數(shù)據(jù)庫連接
          db?=?pymysql.connect(host='localhost',
          ?????????????????????user='testuser',
          ?????????????????????password='test123',
          ?????????????????????database='TESTDB')?
          #?使用?cursor()?方法創(chuàng)建一個游標(biāo)對象?cursor
          cursor?=?db.cursor()
          #?使用?execute()??方法執(zhí)行?SQL?查詢?
          cursor.execute("SELECT?VERSION()")
          #?使用?fetchone()?方法獲取單條數(shù)據(jù).
          data?=?cursor.fetchone()
          print?("Database?version?:?%s?"?%?data)
          #?關(guān)閉數(shù)據(jù)庫連接
          db.close()

          5、Python處理批量文件

          對很多辦公場景來說,批量處理文件一直是個臟活累活,Python可以幫你脫離苦海。Python中有很多處理系統(tǒng)文件的包,比如sys、os、shutil、glob、path.py等等。

          批量刪除不同文件夾下的同名文件夾

          import?os,shutil
          import?sys
          import?numpy?as?np

          def?arrange_file(dir_path0):
          ??for?dirpath,dirnames,filenames?in?os.walk(dir_path0):
          ????if?'my_result'?in?dirpath:
          ??????#?print(dirpath)
          ??????shutil.rmtree(dirpath)

          批量修改文件后綴名

          import?os

          def?file_rename():
          ????path?=?input("請輸入你需要修改的目錄(格式如'F:\\test'):")
          ????old_suffix?=?input('請輸入你需要修改的后綴(需要加點.):')
          ????new_suffix?=?input('請輸入你要改成的后綴(需要加點.):')
          ????file_list?=?os.listdir(path)
          ????for?file?in?file_list:
          ????????old_dir?=?os.path.join(path,?file)
          ????????print('當(dāng)前文件:',?file)
          ????????if?os.path.isdir(old_dir):
          ????????????continue
          ????????if?old_suffix?!=?os.path.splitext(file)[1]:
          ????????????continue
          ????????filename?=?os.path.splitext(file)[0]
          ????????new_dir?=?os.path.join(path,?filename?+?new_suffix)
          ????????os.rename(old_dir,?new_dir)

          if?__name__?==?'__main__':
          ????file_rename()

          6、Python控制鼠標(biāo)

          這是很多人的需求,實現(xiàn)對鼠標(biāo)的自動控制,去做一些流水線的工作,比如軟件測試。

          Python有個pyautogui庫可以任意地去控制你的鼠標(biāo)。

          控制鼠標(biāo)左擊/右擊/雙擊函數(shù)以及測試源碼

          #?獲取鼠標(biāo)位置
          import?pyautogui?as?pg

          try:
          ????while?True:
          ????????x,?y?=?pg.position()
          ????????print(str(x)?+?"?"?+?str(y))??#輸出鼠標(biāo)位置

          ????????if?1746?1800?and?2?33:
          ????????????pg.click()#左鍵單擊
          ????????if?1200?1270?and?600?620:
          ????????????pg.click(button='right')#右鍵單擊
          ????????if?1646?1700?and?2?33:
          ????????????pg.doubleClick()#左鍵雙擊

          except?KeyboardInterrupt:
          ????print("\n")

          7、Python控制鍵盤

          同樣的,Python也可以通過pyautogui控制鍵盤。

          鍵盤寫入

          import?pyautogui
          #typewrite()無法輸入中文內(nèi)容,中英文混合的只能輸入英文
          #interval設(shè)置文本輸入速度,默認(rèn)值為0
          pyautogui.typewrite('你好,world!',interval=0.5)

          8、Python壓縮文件

          壓縮文件是辦公中常見的操作,一般壓縮會使用壓縮軟件,需要手動操作。

          Python中有很多包支持文件壓縮,可以讓你自動化壓縮或者解壓縮本地文件,或者將內(nèi)存中的分析結(jié)果進(jìn)行打包。比如zipfile、zlib、tarfile等可以實現(xiàn)對.zip、.rar、.7z等壓縮文件格式的操作。

          壓縮文件

          import?zipfile
          try:
          ??with?zipfile.ZipFile("c://test.zip",mode="w")?as?f:
          ????f.write("c://test.txt")??????????#寫入壓縮文件,會把壓縮文件中的原有覆蓋
          except?Exception?as?e:
          ????print("異常對象的類型是:%s"%type(e))
          ????print("異常對象的內(nèi)容是:%s"%e)
          finally:
          ????f.close()

          解壓文件

          import?zipfile
          try:
          ??with?zipfile.ZipFile("c://test.zip",mode="a")?as?f:
          ?????f.extractall("c://",pwd=b"root")?##將文件解壓到指定目錄,解壓密碼為root
          except?Exception?as?e:
          ?????print("異常對象的類型是:%s"%type(e))
          ?????print("異常對象的內(nèi)容是:%s"%e)
          finally:
          ?????f.close()

          9、Python爬取網(wǎng)絡(luò)數(shù)據(jù)

          python爬蟲應(yīng)該是最受歡迎的功能,也是廣大Python愛好者們?nèi)肟拥闹饕脑颉?/p>

          Python中有非常多的包支持爬蟲,而爬蟲包又分為抓取、解析兩種。

          比如說requests、urllib這種是網(wǎng)絡(luò)數(shù)據(jù)請求工具,也就是抓取包;xpath、re、bs4這種會對抓取下來的網(wǎng)頁內(nèi)容進(jìn)行解析,稱為解析包。

          爬取百度首頁圖片,并保存到本地

          #?導(dǎo)入urlopen
          from?urllib.request?import?urlopen
          #?導(dǎo)入BeautifulSoup
          from?bs4?import?BeautifulSoup?as?bf
          #?導(dǎo)入urlretrieve函數(shù),用于下載圖片
          from?urllib.request?import?urlretrieve
          #?請求獲取HTML
          html?=?urlopen("http://www.baidu.com/")
          #?用BeautifulSoup解析html
          obj?=?bf(html.read(),'html.parser')
          #?從標(biāo)簽head、title里提取標(biāo)題
          title?=?obj.head.title
          #?只提取logo圖片的信息
          logo_pic_info?=?obj.find_all('img',class_="index-logo-src")
          #?提取logo圖片的鏈接
          logo_url?=?"https:"+logo_pic_info[0]['src']
          #?使用urlretrieve下載圖片
          urlretrieve(logo_url,?'logo.png')

          10、Python處理圖片圖表

          圖片處理、圖表可視化涉及到圖像處理,這也是Python的強(qiáng)項,現(xiàn)在諸如圖像識別、計算機(jī)視覺等前沿領(lǐng)域也都會用到Python。

          在Python中處理圖像的包有scikit Image、PIL、OpenCV等,處理圖表的包有matplotlib、plotly、seaborn等。

          對圖片進(jìn)行黑白化處理

          from?PIL?import?Image
          from?PIL?import?ImageEnhance

          img_main?=?Image.open(u'E:/login1.png')
          img_main?=?img_main.convert('L')
          threshold1?=?138
          table1?=?[]
          for?i?in?range(256):
          ??if?i?????table1.append(0)
          ??else:
          ????table1.append(1)
          img_main?=?img_main.point(table1,?"1")
          img_main.save(u'E:/login3.png')

          生成統(tǒng)計圖表

          import?numpy?as?np
          import?matplotlib.pyplot?as?plt

          N?=?5
          menMeans?=?(20,?35,?30,?35,?27)
          womenMeans?=?(25,?32,?34,?20,?25)
          menStd?=?(2,?3,?4,?1,?2)
          womenStd?=?(3,?5,?2,?3,?3)
          ind?=?np.arange(N)????#?the?x?locations?for?the?groups
          width?=?0.35???????#?the?width?of?the?bars:?can?also?be?len(x)?sequence

          p1?=?plt.bar(ind,?menMeans,?width,?yerr=menStd)
          p2?=?plt.bar(ind,?womenMeans,?width,
          ?????????????bottom=menMeans,?yerr=womenStd)

          plt.ylabel('Scores')
          plt.title('Scores?by?group?and?gender')
          plt.xticks(ind,?('G1',?'G2',?'G3',?'G4',?'G5'))
          plt.yticks(np.arange(0,?81,?10))
          plt.legend((p1[0],?p2[0]),?('Men',?'Women'))

          plt.show()

          小結(jié)

          總之Python會成為大眾化的編程語言,幫助到更多需要的人。

          ?

          如果小伙伴們需要Python辦公學(xué)習(xí)文檔,可以在后臺回復(fù)【c】,領(lǐng)取打包文件。

          ?


          加入知識星球【我們談?wù)摂?shù)據(jù)科學(xué)】

          500+小伙伴一起學(xué)習(xí)!








          ·?推薦閱讀?·

          盤點2021最佳數(shù)據(jù)可視化作品

          一行代碼實現(xiàn)地址信息解析

          新一代Python包管理工具來了


          瀏覽 30
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          點贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  做爱网络视频在线看网站免费 | av色先锋 | 欧美成人做爱 | 国产高清黄片 | 亚洲激情五月天 |