#找出指定盘符路径下,相同大小同名或不同名文件,win11、python3.10.10环境调试通过
import os, sys
#引入统计模块
from stat import *
BIG_FILE_THRESHOLD = 10000000 # 不需要加L
dict1 = {} # filesize 做 key, filename 做 value
dict2 = {} # filename 做 key, filesize 做 value
def treewalk(path):
try:
for entry in os.scandir(path): # 使用os.scandir()函数
if not entry.is_dir(): # 使用is_dir()方法
filename = entry.path # 使用entry.path属性
filesize = entry.stat().st_size # 使用entry.stat()方法
if filesize > BIG_FILE_THRESHOLD:
if filesize in dict1:
dict2[filename] = filesize
dict2[dict1[filesize]]=filesize
else:
dict1[filesize] = filename
else:
treewalk(entry.path) # 使用entry.path属性
except WindowsError:
pass
def printdict(finaldict):
for i_size in finaldict.values():
print(i_size)
for j_name in finaldict.keys():
if finaldict[j_name] == i_size:
print(j_name)
print("\n")
if __name__=="__main__":
treewalk(r"e:/")
printdict(dict2)