'''
找出資料夾中的相同檔案,並移動到指定資料夾中
'''import hashlib
import os,shutil
defmd5_vaule
(dir):
hasher = hashlib.md5(
) afile =
open
(dir
,'rb'
) buf = afile.read(
) a = hasher.update(buf)
return
str(hasher.hexdigest())
deffile_name
(file_dir)
:all=[
]for root, dirs, files in os.walk(file_dir)
: tmp =
# print('root_dir:', root) # 當前目錄路徑
# print('sub_dirs:', dirs) # 當前路徑下所有子目錄
# print('files:', files) # 當前路徑下所有非目錄子檔案
for i in files:
"\\"
+i)for j in tmp:
allreturn
alldef
need_del
(all_md5_in)
: all_md5_no_repeat =
list
(set
(all_md5_in)
) all_md5_no_repeat.sort(key=all_md5_in.index)
need_del_index =
for temp in all_md5_no_repeat:
flag =
0 list_index =
for n in
range
(all_md5_in.count(temp)):
sec = flag
flag = all_md5_in[flag:
].index(temp)
flag = list_index[-1
:][0
]+1for k in
range(1
,len
(list_index)):
)return need_del_index
defmove_file
(orgfile, newpath)
: shutil.move(orgfile, newpath)
defnew_folder_create
(in_del_folder, in_origl_folder)
:# 將重複檔案移動到指定資料夾,為防止出現檔名相同情況,後面會補上檔案原所在路徑
tmp1 = in_origl_folder.split(
".")
tmp2 = tmp1[-2
].split(
":")
res_path = in_del_folder + tmp2[-1
] os.makedirs(res_path)
return res_path
defall_file_and_md5
(filename, filemd5)
:# 顯示所有檔案及其對應的md5
for i in
range
(len
(filename)):
res=filename[i]
+" "
+filemd5[i]
print
(res)
defhow_much_repeat
(all_in)
:# 找出有多少相同的檔案
all_md5_set =
list
(set
(all_in)
) all_md5_set.sort(key = all_in.index)
# for k in all_md5_set:
# print(k)
return
len(all_in)
-len
(all_md5_set)
if __name__ ==
'__main__'
: file_names = file_name(
"d:\\重複"
)# 要處理的資料夾路徑
del_folder =
"d:\\重複del"
# 將重複的檔案拷到此路徑下,為防止出現檔名相同情況,後面會補上檔案原所在路徑
all_md5 =
file_names_beifen =
all_md5_beifen =
for i in file_names:))
# all_file_and_md5(file_names,all_md5) # 顯示所有檔案及其對應的md5
print
("有多少重複 "
, how_much_repeat(all_md5)
)# 找出有多少相同的檔案
need_del_file = need_del(all_md5)
# 找出需要刪除的檔案在原資料夾陣列中的位置(下標)
print
("重複檔案如下:"
)for j in need_del_file:
# 將重複的檔案移動到指定資料夾中
print
(file_names[j]
) new_folder = new_folder_create(del_folder, file_names[j]
) move_file(file_names[j]
, new_folder)
找出兩個資料夾中不同檔案,並另存
coding utf 8 import os from shutil import copy def main pdf path r d pdf file html path r d html file 遍歷兩個路徑下的檔案 其中.htm的檔案進行篩選,和pdf檔案內容進行檔名 不含.pdf和.ht...
Python列出資料夾中的檔案
幾乎所有的關於作業系統的內容可以在python 官方文件中找到 其中os.path被單獨列出 os.listdir path 可以列出path目錄中的檔名子資料夾 os.path.isfile 可以用來判斷是否是檔案。於是可以結合,用來只遍歷資料夾中的檔案 1 from os import list...
將檔案按照字尾名移動到不同的資料夾中
bin bash 定義需要檔案分類的目錄 source export home itms acs 1 data tab event script 定義將分類後檔案存放的目錄 local export home itms acs 1 data tab event script 11 獲取檔案字尾名之後...