Python学习之路(十五):基础知识之os模块

os模块与操作系统打交道

1.文件夹相关

1 os.makedirs('dir1/dir2') # 创建多级目录
2 os.removedirs('dir1/dir2') # 若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依此类推
3 os.mkdir('dir3')  # 创建单级目录
4 os.rmdir('dir3')  # 删除单级空目录,若目录不为空则无法删除,报错
5 print(os.listdir(r'D:\untitled2\day 13'))  # 列出路径下的所有文件夹

2.执行系统命令

1 os.system('dir')  #执行操作系统的命令,没有返回值,适合做实际的操作,如删除文件
2 exec/eval执行的是字符串类型的代码
3 os.system()和os.popen执行的是字符串类型的命令行代码
4 
5 程序要处理这些路径
6 ret = os.popen('dir')
7 s = ret.read()
8 print(s.split('\n'))

3.工作路径

1 打印当前工作目录
2 print(os.getcwd())  # current work dir当前工作目录
3 
4 切换当前工作目录
5 os.chdir('D:\untitled2\day14')
 1 # 把路径中不符合规范的斜杠改成适合当前操作系统的斜杆
 2 path = os.path.abspath(r'D:/untitled2/day14/os模块.py')
 3 print(path)
 4 # 能够将给出的相对路径改成绝对路径
 5 path = os.path.abspath('os模块.py')
 6 print(path)
 7 # 切分路径,将路径中最后一个与其他分割开
 8 path = os.path.split('D:/untitled2/day14/os模块.py')
 9 print(path)
10 
11 # 分开取文件名和文件夹
12 ret1 = os.path.dirname('D:/untitled2/day14/os模块.py')
13 ret2 = os.path.basename('D:/untitled2/day14/os模块.py')
14 print(ret1)
15 print(ret2)
16 
17 # 判断路径是否存在
18 res = os.path.exists('D:/untitled2/day14/os模块.py')
19 print(res)
20 
21 # 判断是否为文件夹:
22 
23 print(os.path.isdir('D:/untitled2/day14'))
24 
25 # 判断是否为文件
26 print(os.path.isfile('D:/untitled2/day14/os模块.py'))
27 
28 # 查看文件大小
29 size = os.path.getsize('D:/untitled2/day14/os模块.py')
30 print(size)

 4.os模块实战

 1 # 打印文件夹中所有文件的大小
 2 def func(path):
 3     size_sum = 0
 4     name_list = os.listdir(path)
 5     for name in name_list:
 6         path_abs = os.path.join(path, name)
 7         if os.path.isdir(path_abs):
 8             size = func(path_abs)  # 如果是文件夹,将文件夹内文件的大小计算完毕后,将值返回到这里,而不是最后的返回值
 9             size_sum += size
10         else:
11             size_sum += os.path.getsize(path_abs)
12     return size_sum
13 
14 
15 ret = func(r'D:\untitled2')
16 print(ret)
 1 # 循环方法打印文件夹中所有文件大小
 2 lst = [r'D:\untitled2']
 3 size_sum = 0
 4 while lst:
 5     path = lst.pop()  # 将路径从列表中取出来
 6     path_list = os.listdir(path)
 7     for name in path_list:
 8         abs_path = os.path.join(path, name)
 9         if os.path.isdir(abs_path):
10             lst.append(abs_path)  # 如果判断路径是文件夹,将文件夹路径添加到列表中,添加的路劲先进后出,最早添加的最后调用
11         else:
12             size_sum += os.path.getsize(abs_path)
13 print(size_sum)

 

posted on 2020-02-27 13:54  Py_studying  阅读(320)  评论(0编辑  收藏  举报

导航