大家考试不易,要个点赞关注没问题吧
参数变量都需要改,不然一群人一样不太好
代码来自网络,我进行了一些注释与修改
import os
totalSize = 0
fileNum = 0
dirNum = 0
def visitDir(path):
global totalSize # 总文件大小
global fileNum #文件数量
global dirNum #文件夹数量 即目录
for lists in os.listdir(path):
sub_path = os.path.join(path, lists)
if os.path.isfile(sub_path):
fileNum = fileNum + 1
totalSize = totalSize + os.path.getsize(sub_path)
#os.path.getsize(path) 返回path文件的大小
elif os.path.isdir(sub_path):
dirNum = dirNum + 1
visitDir(sub_path)
def sizeConvert(size): #单位换算
K, M, G = 1024, 1024**2, 1024**3
if size >= G:
x = str(size / G) + "G Bytes"
elif size >= M:
x = str(size / M) + "M Bytes"
elif size >= K:
x = str(size / K) + "K Bytes"
else :
x = str(size) + 'Bytes'
return x
def main(path):
if (not os.path.isdir(path)):
print('Error:"', path, '" is not a directory or does not exits.' )
# 如果path不是文件则输出错误提示
return
visitDir(path)
def output(path):
print("The total size of " + path + "is: " \
+ sizeConvert(totalSize) + "(" + str(totalSize) + "Bytes)")
print("The total number of files in " + path + " is: ", fileNum)
print("The total number of directories in " + path + " is: ", dirNum)
path = input("请输入需要统计的文件路径:")
if __name__ == "__main__":
main(path)
output(path)