python os模块(1)
os模块主要处理文件和目录(文件夹)的创建、删除、检查判定、属性值修改、路径修改。
(1)获取当前目录的两种方法
1 os.getcwd()
2 os.path.abspath('.')
(2)创建文件夹
os.makedirs(r'd:\test')
若该文件夹已存在,会报错。
(3)列举指定目录下的全面文件及文件夹
os.listdir(r'd:\test')
返回值为列表形式
(4)删除空文件夹的两种方法
1 os.removedirs(r'd:\test')
2 os.rmdir('d:\\test')
若制定路径下文件夹不存在和非空文件夹,都会报错。
若程序当前目录在该删除路径内,也会报错。
练习1:在指定目录,批量生成N个文件夹
1 import os 2 3 sPath = 'd:\\test' #指定目录 4 dirs_name = ['one', 'two', 'three'] #指定文件夹名称 5 6 if not os.path.exists(sPath): 7 os.mkdir(sPath) 8 9 os.chdir(sPath) 10 11 for i in range(len(dirs_name)): 12 if not os.path.exists(str(i+1) + ' ' + dirs_name[i]): 13 os.mkdir(str(i+1) + ' ' + dirs_name[i]) 14 15 print('Success')
练习2:打印指定目录下,全部文件的绝对路径(两种方法)
1 #!/urs/bin/env python 2 # -*- coding:utf-8 -*- 3 4 def print_directory_contents(sPath): 5 import os 6 for sChild in os.listdir(sPath): 7 sChildPath = os.path.join(sPath, sChild) 8 if os.path.isdir(sChildPath): 9 print_directory_contents(sChildPath) 10 else: 11 print(sChildPath) 12 13 print_directory_contents(r'D:\test')
实现方式2:
1 def print_files_abspath(sPath): 2 for root, dirs, files in os.walk(sPath): 3 for name in files: 4 print(os.path.join(root, name)) 5 6 print_files_abspath('D:\StormMedia')
练习3:查找指定目录下,全部满足条件的文件,以列表方式呈现文件的绝对路径
1 #!/urs/bin/env python 2 # -*- coding:utf-8 -*- 3 4 import os 5 6 result = [] 7 8 def find_all_files(sPath, fileName): 9 for root, dirs, files in os.walk(sPath): 10 for name in files: 11 if name == fileName: 12 result.append(os.path.join(root, name)) 13 14 if __name__ == '__main__': 15 find_all_files(r'D:\\Linux', 'Makefile') 16 for i in range(len(result)): 17 print(result[i]) 18 19 print("Totals: %s" % len(result))
练习4:打印指定目录下,全部目录的绝对路径
1 #!/urs/bin/env python 2 # -*- coding:utf-8 -*- 3 4 import os 5 6 def print_all_directories(sPath): 7 for root, dirs, files in os.walk(sPath): 8 for name in dirs: 9 print(os.path.join(root, name)) 10 11 print_all_directories(r'D:\test')