欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python辦公自動(dòng)化批量處理文件實(shí)現(xiàn)示例

 更新時(shí)間:2022年06月30日 16:07:22   作者:早起python  
這篇文章主要為大家介紹了Python辦公自動(dòng)化批量處理文件實(shí)現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪

引言

要說(shuō)在工作中最讓人頭疼的就是用同樣的方式處理一堆文件夾中文件,這并不難,但就是繁。所以在遇到機(jī)械式的操作時(shí)一定要記得使用Python來(lái)合理偷懶!今天我將以處理微博熱搜數(shù)據(jù)來(lái)示例如何使用Python批量處理文件夾中的文件,主要將涉及:

  • Python批量讀取不同文件夾(???)
  • Pandas數(shù)據(jù)處理(??)
  • Python操作Markdown文件(?)

需求分析

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

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

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

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

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

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

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

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

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

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

來(lái)看下結(jié)果

成功讀取了熱搜數(shù)據(jù)下多層文件夾中的全部md文件!但是新的問(wèn)題來(lái)了,每天有兩條熱搜匯總,一個(gè)11點(diǎn)一個(gè)23點(diǎn),考慮到會(huì)有重合數(shù)據(jù)所以我們?cè)谔幚碇跋冗M(jìn)行去重,而這就簡(jiǎ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è)來(lái)看看

打開方式和其他文件類似使用with語(yǔ)句,返回一個(gè)list,但是這個(gè)list并不能直接為我們所用,第一個(gè)元素包含時(shí)間,后面每天的熱搜和熱度也不是直接存儲(chǔ),含有markdown語(yǔ)法中的一些沒用的符號(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ù)即可

可以看到,并沒有使用太復(fù)雜的代碼就成功實(shí)現(xiàn)了我們的需求!

結(jié)束語(yǔ)

以上就是使用Python再一次解放雙手并成功偷懶的案例,可能讀取Markdown文件在你的日常工作中并用不到,但是通過(guò)本案例希望你能學(xué)會(huì)如何批量處理文件夾,批量讀取清洗數(shù)據(jù)。更重要的是在你的工作學(xué)習(xí)中,遇到需要重復(fù)操作的任務(wù)時(shí),是否能夠想起使用Python來(lái)自動(dòng)化解決

源碼地址

以上就是Python辦公自動(dòng)化批量處理文件實(shí)現(xiàn)示例的詳細(xì)內(nèi)容,更多關(guān)于Python辦公自動(dòng)化批量處理文件的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python中基本的日期時(shí)間處理的學(xué)習(xí)教程

    Python中基本的日期時(shí)間處理的學(xué)習(xí)教程

    這篇文章主要介紹了Python中基本的日期時(shí)間處理的學(xué)習(xí)教程,日期時(shí)間相關(guān)模塊的使用是Python入門學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-10-10
  • 如何用Pytorch搭建一個(gè)房?jī)r(jià)預(yù)測(cè)模型

    如何用Pytorch搭建一個(gè)房?jī)r(jià)預(yù)測(cè)模型

    這篇文章主要介紹了用Pytorch搭建一個(gè)房?jī)r(jià)預(yù)測(cè)模型,在這里我將主要討論P(yáng)yTorch建模的相關(guān)方面,作為一點(diǎn)額外的內(nèi)容,我還將演示PyTorch中開發(fā)的模型的神經(jīng)元重要性,需要的朋友可以參考下
    2023-03-03
  • Pandas實(shí)現(xiàn)數(shù)據(jù)拼接的操作方法詳解

    Pandas實(shí)現(xiàn)數(shù)據(jù)拼接的操作方法詳解

    Python處理大規(guī)模數(shù)據(jù)集的時(shí)候經(jīng)常需要使用到合并、鏈接的方式進(jìn)行數(shù)據(jù)集的整合,本文為大家主要介紹了.merge()、?.join()?和?.concat()?三種方法,感興趣的可以了解一下
    2022-04-04
  • Python如何實(shí)現(xiàn)守護(hù)進(jìn)程的方法示例

    Python如何實(shí)現(xiàn)守護(hù)進(jìn)程的方法示例

    護(hù)進(jìn)程:通常被定義為一個(gè)后臺(tái)進(jìn)程,而且它不屬于任何一個(gè)終端會(huì)話(terminal session)。許多系統(tǒng)服務(wù)由守護(hù)程序?qū)嵤?;如網(wǎng)絡(luò)服務(wù),打印等。 下面這篇文章給大家分享了Python是如何實(shí)現(xiàn)守護(hù)進(jìn)程的方法示例,需要的朋友可以參考借鑒。
    2017-02-02
  • python使用turtle繪制分形樹

    python使用turtle繪制分形樹

    這篇文章主要為大家詳細(xì)介紹了python使用turtle繪制分形樹的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-06-06
  • 使用python將excel數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)過(guò)程詳解

    使用python將excel數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)過(guò)程詳解

    這篇文章主要介紹了使用python將excel數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫(kù)過(guò)程詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • 使用Python實(shí)現(xiàn)屏幕截圖的兩種方法

    使用Python實(shí)現(xiàn)屏幕截圖的兩種方法

    Python作為一種高效的編程語(yǔ)言,可以通過(guò)一些庫(kù)來(lái)實(shí)現(xiàn)對(duì)屏幕的截圖操作,本文主要介紹了使用Python實(shí)現(xiàn)屏幕截圖的兩種方法,具有一定的 參考價(jià)值,感興趣的可以了解一下
    2023-12-12
  • Python序列化模塊之pickle與json詳解

    Python序列化模塊之pickle與json詳解

    這篇文章主要為大家介紹了Python中常用的兩個(gè)序列化模塊:pickle序列化和json序列化。文中的示例代碼講解詳細(xì),感興趣的小伙伴可以學(xué)習(xí)一下
    2022-05-05
  • Python+Socket實(shí)現(xiàn)基于TCP協(xié)議的客戶與服務(wù)端中文自動(dòng)回復(fù)聊天功能示例

    Python+Socket實(shí)現(xiàn)基于TCP協(xié)議的客戶與服務(wù)端中文自動(dòng)回復(fù)聊天功能示例

    這篇文章主要介紹了Python+Socket實(shí)現(xiàn)基于TCP協(xié)議的客戶與服務(wù)端中文自動(dòng)回復(fù)聊天功能,結(jié)合實(shí)例形式分析了Python+Socket實(shí)現(xiàn)帶自動(dòng)回復(fù)功能的TCP聊天程序相關(guān)操作方法與注意事項(xiàng),需要的朋友可以參考下
    2017-08-08
  • Python實(shí)現(xiàn)帶百分比的進(jìn)度條

    Python實(shí)現(xiàn)帶百分比的進(jìn)度條

    本文給大家匯總介紹了3種使用Python實(shí)現(xiàn)帶百分比進(jìn)度條的代碼,非常的簡(jiǎn)單實(shí)用,有需要的小伙伴可以參考下
    2016-06-06

最新評(píng)論