os模块主要处理文件和目录(文件夹)的创建、删除、检查判定、属性值修改、路径修改。
(1)获取当前目录的两种方法
1 os.getcwd()
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个文件夹
import os sPath = 'd:\\test' #指定目录
dirs_name = ['one', 'two', 'three'] #指定文件夹名称 if not os.path.exists(sPath):
os.mkdir(sPath) os.chdir(sPath) for i in range(len(dirs_name)):
if not os.path.exists(str(i+1) + ' ' + dirs_name[i]):
os.mkdir(str(i+1) + ' ' + dirs_name[i]) print('Success')
练习2:打印指定目录下,全部文件的绝对路径(两种方法)
#!/urs/bin/env python
# -*- coding:utf-8 -*- def print_directory_contents(sPath):
import os
for sChild in os.listdir(sPath):
sChildPath = os.path.join(sPath, sChild)
if os.path.isdir(sChildPath):
print_directory_contents(sChildPath)
else:
print(sChildPath) print_directory_contents(r'D:\test')
实现方式2:
def print_files_abspath(sPath):
for root, dirs, files in os.walk(sPath):
for name in files:
print(os.path.join(root, name)) print_files_abspath('D:\StormMedia')
练习3:查找指定目录下,全部满足条件的文件,以列表方式呈现文件的绝对路径
#!/urs/bin/env python
# -*- coding:utf-8 -*- import os result = [] def find_all_files(sPath, fileName):
for root, dirs, files in os.walk(sPath):
for name in files:
if name == fileName:
result.append(os.path.join(root, name)) if __name__ == '__main__':
find_all_files(r'D:\\Linux', 'Makefile')
for i in range(len(result)):
print(result[i]) print("Totals: %s" % len(result))
练习4:打印指定目录下,全部目录的绝对路径
#!/urs/bin/env python
# -*- coding:utf-8 -*- import os def print_all_directories(sPath):
for root, dirs, files in os.walk(sPath):
for name in dirs:
print(os.path.join(root, name)) print_all_directories(r'D:\test')