成人无码视频,亚洲精品久久久久av无码,午夜精品久久久久久毛片,亚洲 中文字幕 日韩 无码

資訊專欄INFORMATION COLUMN

Python辦公系統(tǒng)批量編輯文檔完成實(shí)例

89542767 / 333人閱讀

  此篇文章主要是給大家介紹了Python辦公系統(tǒng)批量編輯文檔完成實(shí)例詳細(xì)說明,感興趣的小伙伴可以參考借鑒一下,希望可以有一定的幫助,祝愿大家多多的發(fā)展,盡早工作上得到晉升。


  前言


  說起在工作上最讓人頭大的便是用這樣的方法解決一大堆文件夾中文檔,這其實(shí)并不難,但是卻繁。因此當(dāng)遇到腳踏式的操作過程中一定要注意應(yīng)用Python來有效懶惰!這次我會(huì)以解決微博熱搜榜數(shù)據(jù)信息來實(shí)例怎么使用Python批量編輯文件夾中文件,主要是將涉及到:


  Python大批量載入不一樣文件夾(???)


  Pandas數(shù)據(jù)解決(??)


  Python實(shí)際操作Markdown文件(?)


  需求分析

01.png

  首先來說明一下需要完成的任務(wù),下面是我們的文件夾結(jié)構(gòu)


  因?yàn)槲⒉v史熱搜是沒有辦法去爬的,所以只能寫一個(gè)爬蟲每天定時(shí)爬取熱搜并保存,所以在我當(dāng)時(shí)分析數(shù)據(jù)時(shí)使用的就是上圖展示的數(shù)據(jù),每天的數(shù)據(jù)以套娃形式被保存在三級(jí)目錄下,并且熱搜是以markdown文件存儲(chǔ)的,打開是這樣????

02.png

  而我要做的就是將這三個(gè)月的微博熱搜數(shù)據(jù)處理成這樣????

03.png

  這困難嗎,手動(dòng)的話無非是依次點(diǎn)三下進(jìn)入每天的數(shù)據(jù)文件夾再打開md文件手動(dòng)復(fù)制粘貼進(jìn)Excel,不就幾萬條數(shù)據(jù),大不了一天不吃飯也能搞定!現(xiàn)在我們來看看如何用Python光速處理。


  Python實(shí)現(xiàn)


  在操作之前我們來思考一下如何使用Python實(shí)現(xiàn),其實(shí)和手動(dòng)的過程類似:先讀取全部文件,再對(duì)每一天的數(shù)據(jù)處理、保存。所以第一步就是將我們需要的全部文件路徑提取出來,首先導(dǎo)入相關(guān)庫


  import pandas as pd
  import os
  import glob
  from pathlib import Path


  讀取全部文件名的方法有很多比如使用OS模塊

04.png

  但是由于我們是多層文件夾,使用OS模塊只能一層一層讀取,要寫多個(gè)循環(huán)從而效率不高,所以我們告別os.path使用Pathlib來操作,三行代碼就能搞定,看注釋


  from pathlib import Path
  p=Path("/Users/liuhuanshuo/Desktop/熱搜數(shù)據(jù)/")#初始化構(gòu)造Path對(duì)象
  FileList=list(p.glob("**/*.md"))#得到所有的markdown文件`</pre>


  來看下結(jié)果


  成功讀取了熱搜數(shù)據(jù)下多層文件夾中的全部md文件!但是新的問題來了,每天有兩條熱搜匯總,一個(gè)11點(diǎn)一個(gè)23點(diǎn),考慮到會(huì)有重合數(shù)據(jù)所以我們?cè)谔幚碇跋冗M(jìn)行去重,而這就簡單了,不管使用正則表達(dá)式還是按照奇偶位置提取都行,這里我是用lambda表達(dá)式一行代碼搞定


  filelist=list(filter(lambda x:str(x).find("23點(diǎn)")>=0,FileList))

  現(xiàn)在我們每天就只剩下23點(diǎn)的熱搜數(shù)據(jù),雖然是markdown文件,但是Python依舊能夠輕松處理,我們打開其中一個(gè)來看看


  打開方式和其他文件類似使用with語句,返回一個(gè)list,但是這個(gè)list并不能直接為我們所用,第一個(gè)元素包含時(shí)間,后面每天的熱搜和熱度也不是直接存儲(chǔ),含有markdown語法中的一些沒用的符號(hào)和換行符,而清洗這些數(shù)據(jù)就是常規(guī)操作了,使用下面的代碼即可,主要就是使用正則表達(dá)式,看注釋


  with open(file)as f:
  lines=f.readlines()
  lines=[i.strip()for i in lines]#去除空字符
  data=list(filter(None,lines))
  del data[0]
  data=data[0:100]
  date=re.findall('年(.+)2',str(file))[0]
  content=data[::2]#奇偶分割
  rank=data[1::2]
  #提取內(nèi)容與排名
  for i in range(len(content)):
  content<i>=re.findall('、(.+)',content<i>)[0]
  for i in range(len(rank)):
  rank<i>=re.findall('(.+)',rank<i>)[0]`


  最后只需要寫一個(gè)循環(huán)遍歷每一天的文件并進(jìn)行清洗,再創(chuàng)建一個(gè)DataFrame用于存儲(chǔ)每天的數(shù)據(jù)即可


  能夠看見,并沒應(yīng)用太復(fù)雜了的編碼就能成功完成了我們要求!


  結(jié)語


  以上就是關(guān)于應(yīng)用Python再次解鎖新技能最終成功粗心的例子,很有可能載入Markdown文件在您的實(shí)際工作中并且用不上,但通過本實(shí)例希望你能夠懂得如何批量編輯文件夾,大批量載入清洗數(shù)據(jù)。更為關(guān)鍵的是在您的工作中,碰到必須重復(fù)性工作的任務(wù)后,是否能想到應(yīng)用Python來自動(dòng)化技術(shù)解決

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/128708.html

Failed to recv the data from server completely (SIZE:0/8, REASON:closed)