在百度網盤下載了一些視頻,全部下載完成后發現很多文件都帶了個.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")