利用python實現刪除文件夾裏某些特定文件

在百度網盤下載了一些視頻,全部下載完成後發現很多文件都帶了個.baiduyun.p.downloading,發現源文件是好的,網上搜了搜應該是百度網盤的BUG?反正源文件是正常,需要把這些文件刪除,如果你像我一樣下載了很多視頻,而且這個破文件.baiduyun.p.downloading也很多,一個個手刪得刪一年,那麼你就需要用到py對文件夾進行遞歸遍歷,把所有文件找出來,在挨個判斷哪些文件帶有這些後綴,然後在利用py把這些文件刪除掉,下面直接貼上代碼。

import os
import shutil

# 這個函數是用來遞歸遍歷文件夾裏面所有內容,包括文件夾和文件,將它們分開放到兩個列表
# 顧名思義:file_list 是放文件的、dir_list 是放目錄的
def get_file_path(root_path, file_list, dir_list):
	# 獲取該目錄下所有的文件名稱和目錄名稱
	dir_or_files = os.listdir(root_path);
	for dir_file in dir_or_files:
		# 獲取目錄或者文件的路徑
		dir_file_path = os.path.join(root_path, dir_file)
		# 判斷該路徑爲文件還是路徑
		if os.path.isdir(dir_file_path):
			dir_list.append(dir_file_path)
			# 遞歸獲取所有文件和目錄的路徑
			get_file_path(dir_file_path, file_list, dir_list)
		else:
			file_list.append(dir_file_path);

# 這個函數是用來將遍歷好的文件列表中裏面某些需要刪除的文件進行刪除操作
# 如果你不放心帶後綴的文件刪除後有啥影響,在下面有一句註釋的代碼,是用來將源文件複製拷貝到某個目錄裏
def delete_file(file_list):
        # file_list 已經在上面的函數遍歷完成 現在裏面的內容是所有的文件
        # 我們挨個遍歷 找到符合刪除文件的條件
	for file_name in file_list:
                # 如果文件的後綴符合要求 就進行操作
		if file_name.endswith(".baiduyun.p.downloading"):
                        # 在屏幕上打印出來文件的名稱 你得知道你刪除了什麼文件
			print(file_name)
			# 下面代碼是將刪除這個後綴的文件拷貝到一個備份的文件夾,其實就是多此一舉
                        # 一開始是爲了確認下刪除了那個帶後綴的文件會不會對源文件產生一些影響
			# shutil.copy(file_name.split(".baiduyun.p.downloading")[0], r"E:\BackUP")
                        # 直接進行刪除
			os.remove(file_name)

if __name__ == "__main__":
	# 根目錄路徑
	root_path = r"E:\BaiduNetdiskDownload";
	# 用來存放所有的文件路徑
	file_list = []
	# 用來存放所有的目錄路徑
	dir_list = []
	get_file_path(root_path, file_list, dir_list)
	# print(file_list)
	# print(dir_list)
	delete_file(file_list)
	os.system("pause")
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章