p0003 os文件操作

获取输入路径下文件的个数和大小

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
import os


class :
def __init__(self):
self.path = None
self.fileList = []
self.fileAllSize = 0
self.unitList = ["B", "kB", "MB", "GB", "TB"]

def getFileNumber(self, path):
if os.path.exists(path):
for name in os.listdir(path):
name = os.path.join(path, name)
if os.path.isdir(name):
self.getFileNumber(name)
else:
self.fileList.append(name)

else:
raise TypeError("路径输入错误!")

def getFileSize(self, path):
if os.path.exists(path):
for name in os.listdir(path):
name = os.path.join(path, name)
if os.path.isdir(name):
self.getFileSize(name)
else:
self.fileAllSize += os.path.getsize(name)
else:
raise TypeError("路径输入错误!")

def uintChange(self):
index = len(self.unitList)
while True:
if self.fileAllSize < 1024:
print("文件大小为%dbytes" % self.fileAllSize)
break
else:
if self.fileAllSize > 1024 ** index:
print("文件总大小为:%.2f%s" % (self.fileAllSize /
1024 ** index, self.unitList[index]))
break
else:
index -= 1


fileP = fileProcess()
# C:UsersAdministratorDesktopwinhex
# a.getFileNumber(input("请输入要获取的文件路径:"))
fileP.path = input("请输入要获取的文件路径:")
fileP.getFileSize(fileP.path)
fileP.getFileNumber(fileP.path)
print("文件数量:%d" % len(fileP.fileList))
fileP.uintChange()