Python入门:计算目录下的文件大小和

#test.py
def file_size(fname):   #该函数传入一个fname
    return os.stat(fname).st_size    #返回该文件的大小
#os.stat可以获取传入节点的很多信息,如:创建时间、修改时间、大小等等
#st_size是os.stat获取到内容中的一个,是文件的大小

def file_list(path = None): #获取传入路径的所有文件或目录,目录和文件可以用isdir和isdir来判断
    if path == None:     #先判断该函数是不是传入了空值,如果是空值,那么将path赋值为当前文件的路径
        path = os.getcwd()
    os.chdir(path)    #然后修改系统的当前工作路径,有了该句之后再使用os.getcwd会变成,你修改的路径,而非系统默认的路径
    #返回该路径下的所有文件
    return [p for p in os.listdir(path) if os.path.isfile(p)]
    #此句等于如下代码:
    #ll = []
    #for p in os.listdir(path): 
    #    if os.path.isfile(p):
    #       ll.append(p)
    #return ll
print(file_list())      #此句为file_list的测试语句

def total_size(path = None):    #计算总计大小
    if path == None:
        path = os.getcwd()
    os.chdir(path)
    total = 0
    for name in file_list(path):  #从file_lsit函数中获取到各个文件
        total = total + file_size(name)   #使用file_size函数计算各个文件的大小,并求和
    return total   #返回计算后的总计大小

print(total_size(os.getcwd()))  #调用核心函数

计算结果为:6134
Python入门:计算目录下的文件大小和_第1张图片
注:目录不计算
注:你传入的目录不一样,里面的文件就不一样,大小也会不一样

你可能感兴趣的:(python)