首页
/
每日頭條
/
科技
/
python批量編輯教程
python批量編輯教程
更新时间:2025-02-14 06:01:00

python批量編輯教程(Python辦公自動化批量處理文件)1

注1: 本文對應的教學視頻私信我“學習”獲取!

注2: 以上代碼需在Python3環境下運行

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

  • Python批量讀取不同文件夾( :star: :star: :star: )
  • Pandas數據處理( :star: :star: )
  • Python操作markdown文件( :star: )

需求分析

首先來說明一下需要完成的任務,下面是我們的文件夾結構

python批量編輯教程(Python辦公自動化批量處理文件)2

因為微博曆史熱搜是沒有辦法去爬的,所以隻能寫一個爬蟲每天定時爬取熱搜并保存,所以在我當時分析數據時使用的就是上圖展示的數據, 每天的數據以套娃形式被保存在三級目錄下 ,并且熱搜是以markdown文件存儲的,打開是這樣:point_down:

python批量編輯教程(Python辦公自動化批量處理文件)3

而我要做的就是将這三個月的微博熱搜數據處理成這樣:point_down:

python批量編輯教程(Python辦公自動化批量處理文件)4

這困難嗎,手動的話無非是依次 點三下 進入每天的數據文件夾再打開md文件 手動複制粘貼 進Excel,不就幾萬條數據,大不了一天不吃飯也能搞定!現在我們來看看如何 用Python光速處理

Python實現

在操作之前我們來 思考一下如何使用Python實現 ,其實和手動的過程類似:先 讀取全部文件,再對每一天的數據處理、保存。所以第一步就是将我們需要的 全部文件路徑提取出來 ,首先導入相關庫

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

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

python批量編輯教程(Python辦公自動化批量處理文件)5

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

from pathlib import Path p = Path("/Users/liuhuanshuo/Desktop/熱搜數據/") #初始化構造Path對象 fileList=list(p.glob("**/*.md")) #得到所有的markdown文件

來看下結果

python批量編輯教程(Python辦公自動化批量處理文件)6

成功讀取了熱搜數據下多層文件夾中的全部md文件!但是新的問題來了,每天有兩條熱搜彙總,一個11點一個23點,考慮到會有 重合數據 所以我們在處理之前先 進行去重 ,而這就簡單了,不管使用 正則表達式 還是按照奇偶位置提取都行,這裡我是用 lambda表達式 一行代碼搞定

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

現在我們每天就隻剩下23點的熱搜數據,雖然是markdown文件,但是Python依舊能夠輕松處理,我們打開其中一個來看看

python批量編輯教程(Python辦公自動化批量處理文件)7

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

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] #提取内容與排名 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]

最後隻需要 寫一個循環遍曆 每一天的文件并進行清洗,再創建一個DataFrame用于存儲每天的數據即可

python批量編輯教程(Python辦公自動化批量處理文件)8

可以看到,并 沒有使用太複雜的代碼 就成功實現了我們的需求!

結束語

以上就是使用Python再一次解放雙手并成功 偷懶 的案例,可能讀取Markdown文件在你的日常工作中并用不到,但是通過本案例希望你能學會 如何批量處理文件夾 ,批量讀取清洗數據。更重要的是在你的工作學習中, 遇到需要重複操作的任務時,是否能夠想起使用Python來自動化解決!拜拜,我們下個案例見~

,
Comments
Welcome to tft每日頭條 comments! Please keep conversations courteous and on-topic. To fosterproductive and respectful conversations, you may see comments from our Community Managers.
Sign up to post
Sort by
Show More Comments
推荐阅读
泰康健康有約終身重大疾病保險d款
泰康健康有約終身重大疾病保險d款
南方财經全媒體記者孫詩卉實習生張朵徐若萱上海報道,本次在市面上近百款百萬醫療險産品中選取了具有代表性的12款長期醫療險,使用“南财醫療險TDW(TenDimensionsWeighted)模型”進行測評。以下為具體測算結果:本期将詳細分析總...
2025-02-14
華為mate50 5g官方消息
華為mate50 5g官方消息
歐界報道:華為Mate50系列的消息一波未平一波又起,近日又有最新消息傳來:今年8月發布Mate50系列,共包含Mate50、Mate50Pro、Mate50RS和Mate50X四款機型,遺憾的是麒麟90005G芯片已成絕唱,搭載高通骁龍4...
2025-02-14
客戶管理系統搭建教程
客戶管理系統搭建教程
無代碼平台可以通過拖拉方式快速搭建出個性化系統,可以配置流程引擎,可以搭建BI數據大屏,相比于傳統的軟件開發模式,無代碼可以更低成本、更快周期幫助企業快速實現數字化管理,不是人去适應軟件而是軟件适應人。今天小編通過搭建一套客戶管理系統向小夥...
2025-02-14
三峽大學科技學院簡介
三峽大學科技學院簡介
三峽大學科技學院簡介?三峽大學科技學院是經中國教育部備案、湖北省教育廳批準,由三峽大學與宜昌教育實業開發總公司合作舉辦的高校獨立學院,我來為大家講解一下關于三峽大學科技學院簡介?跟着小編一起來看一看吧!三峽大學科技學院簡介三峽大學科技學院是...
2025-02-14
應用耗電記錄
應用耗電記錄
8月24日消息,不知道你們有沒有感覺到手機電量越來越不耐用,從最開始的每日一充慢慢變成每日兩充,甚至更多。近來有人做了一個有關手機耗電的測試,測試結果顯示,幾乎在每個用戶的手機裡都發現微信常駐後台運行,而耗電大的原因就是這個微信。根據測試中...
2025-02-14
Copyright 2023-2025 - www.tftnews.com All Rights Reserved