列表的pop()和路径拼接问题

我竟然发现了新大陆,感觉对列表已经啥也不清楚了

#pop()删除最后一项
l=[1,2,3]
a=l.pop(-1)
print(a)
print(l)
结果:
3
[1, 2]

  

练习题:计算文件夹的大小

1.绝对路径:最完整的路径

2.相对路径:不完整的路径

import os
path1=os.path.abspath('.')                    #该文件的绝对路径
path2=os.path.abspath('..')                   #该文件上一级的绝对路径
print(path1)
print(path2)
结果:
F:\pycharmproject\新建文件夹\day0327\作业
F:\pycharmproject\新建文件夹\day0327

  

os.path.join(path[,path2   ])路径的拼接:

b=os.path.join(path,'/ac')
print(b)

b1=os.path.join(path,'ac')
print(b1)

b2=os.path.join(path)
print(b2)

b3=os.path.abspath(path)#返回规范化path的绝对路径
print(b3)
结果:
F:/ac
F:\Python编程从入门到实践(高清中文版PDF+高清英文版PDF+源代码)\ac
F:\Python编程从入门到实践(高清中文版PDF+高清英文版PDF+源代码)
F:\Python编程从入门到实践(高清中文版PDF+高清英文版PDF+源代码)

#注意看这里的区别

 注意:第一个绝对路径之前的路径直接被忽略

b4= os.path.join('windows\temp', 'c:\\', 'csv', 'test.csv')
#将多个路径组合后返回,第一个绝对路径之前的参数将被忽略。 
print(b4)
结果:
c:\csv\test.csv

  

 

计算文件夹的大小的过程如下:

import os
def get_size(path):
    size=0
    l=[path]
    while l:
        path=l.pop()
        lst=os.listdir(path)
        #列出指定目录下的所有文件和子目录,包含隐藏文件,并以列表的方式打印

        for name in lst:
            son_path=os.path.join(path,name)
            #将多个路径组合后返回,第一个绝对路径之前的参数将被忽略

            if os.path.isfile(son_path):
                size+=os.path.getsize(son_path)
            else:
                l.append(son_path)
    return size
size=get_size(r'F:\Python编程从入门到实践(高清中文版PDF+高清英文版PDF+源代码)')
print(size)
结果:
122364068

  

 

posted @ 2019-03-27 16:04  醉醺醺的  阅读(287)  评论(0编辑  收藏  举报