人生苦短,我用Python

朋友問我有沒有什么方法可以快速的洗掉電腦里的批量檔案,答案是當然可以,Python幾行代碼可以輕松搞定,下面我們可以來看看,
之前我有一個朋友,她在作業中遇到很多作業繁瑣的問題,具體是什么樣的一個情況呢?

我看到小A的做法,也覺得累得慌,我們來瞧瞧👇

對朋友來說,整理檔案名這項作業重復,每次都耗時10分鐘~40分鐘去整理,
當時,我就給她提供了一個程式,讓她能夠一次性獲得一個檔案夾中所有的檔案名,順利解決了她的苦惱,
# -*- coding: utf-8 -*-
# author:儒皮法骨@小學徒
# 匯入爬蟲庫
# -*- coding: utf-8 -*-
import os
# 設定檔案夾路徑,獲取檔案夾下的所有檔案名
path = './作業檔案夾/'
files_list = os.listdir(path)
# 設定需要查找的關鍵詞
key_word = input("請輸入要查找的關鍵詞:")
# 打開結果檔案
result_file = open('./demo_result.txt', 'a', encoding='utf-8')
# 回圈處理每一個檔案
for file_name in files_list:
# 判斷檔案型別是否在檔案名中
if '.txt' in file_name:
# 找到檔案時先列印提示
print("找到了檔案:" + file_name)
# 將檔案夾路徑和檔案名拼接成該檔案的相對路徑
target_file = path + file_name
# 打開檔案,讀取檔案內容,然后關閉檔案
file = open(target_file, 'r', encoding='utf-8')
content = file.read()
file.close()
# 判斷關鍵詞是否在檔案內容中
if key_word in content:
# 匹配到關鍵詞時先列印提示
print("妙啊,檔案**{}**包含了關鍵詞:{}".format(target_file, key_word))
# 將包含關鍵詞的檔案的檔案路徑,寫入結果檔案,
result_file.write(target_file + '\n')
# 關閉結果檔案
result_file.close()
當然這只是解決了她一時的煩惱,她后續為了解決這些煩惱也加入了Python的大家庭,自己也學起了Python,作為朋友的我也很是開心,又把一個朋友帶入了Python這個大坑,O(∩_∩)O哈哈~
回到上面的問題,os.listdir()只是解決了指定檔案夾內的所有檔案,并不能向上也不能向下獲取所有檔案夾內的檔案,所以這里我們就得說到os.walk()方法:
os.walk()用于通過在目錄樹中游走輸出在目錄中的檔案名,向上或者向下,
os.walk() 方法是一個簡單易用的檔案、目錄遍歷器,可以幫助我們高效的處理檔案、目錄方面的事情,
在Unix,Windows中有效,
語法
walk()方法語法格式如下:
os.walk(top[, topdown=True[, οnerrοr=None[, followlinks=False]]])
引數
top -- 是你所要便利的目錄的地址, 回傳的是一個三元組(root,dirs,files),
root 所指的是當前正在遍歷的這個檔案夾的本身的地址
dirs 是一個 list ,內容是該檔案夾中所有的目錄的名字(不包括子目錄)
files 同樣是 list , 內容是該檔案夾中所有的檔案(不包括子目錄)
topdown --可選,為 True,則優先遍歷 top 目錄,否則優先遍歷 top 的子目錄(默認為開啟),如果 topdown 引數為 True,walk 會遍歷top檔案夾,與top 檔案夾中每一個子目錄,
onerror -- 可選, 需要一個 callable 物件,當 walk 需要例外時,會呼叫,
followlinks -- 可選, 如果為 True,則會遍歷目錄下的快捷方式(linux 下是 symbolic link)實際所指的目錄(默認關閉),
方法說完了,我們就要開始實際應用了,代碼如下:
# -*- coding: utf-8 -*-
# author:儒皮法骨@小學徒
# 匯入爬蟲庫
# -*- coding: utf-8 -*-
import os
n = 0
for root, dirs, files in os.walk(r'path'): #這里path是檔案路徑
for name in files:
if("趙麗穎"in name):
n += 1
print(n)
print(name)
os.remove(os.path.join(root, name))
print('檔案洗掉成功!')
input('Press Enter to exit…')
上面一段代碼只是一個初級版本,功能也很簡單,指定洗掉某個檔案夾中的指定檔案,功能也比較單一,不能輸入檔案的名字或者后綴名來洗掉所有盤符內的所有指定檔案,不過對此我也做了升級優化,程式和代碼都在我的資源里面,大家可以去看看,我的主頁在我的主頁里面可以看到過往寫的一些知識點還有上傳的資源,也歡迎大家互相討論留言,作為一個走在學習路上的Python小學徒,大家一起互相學習,共同進步,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/281268.html
標籤:python
