python os操作
2021-04-23
新闻来源:网淘巴
围观:1020
''
这张主要介绍os模块的几个函数
1.os.path.exists() 和 os.listdir()
首先我们要判断该路径是不是存在,如果存在再列出该路径下的所有文件
import os
path=r'D:\学习资料\kira'
if os.path.exists(path):
files=os.listdir(path)
print(files)
else:
print('this path not exist')
结果:
['1', '2.txt', '3.py']
上面结果只是列出了一级目录下的所有文件,可能会遇到文件夹套文件夹再套文件夹的情况,所以我们这边需要写一个方法,遍历该目录下的所有文件夹.直到把所有文件都找出来.这边需要用到os.path.isfile()或者os.path.isdir(),如果判断出来是文件夹,我们还需要用到os.path.join(),继续深入处理
#coding=utf-8
import os
def list_allfile(path,all_files=[]):
if os.path.exists(path):
files=os.listdir(path)
else:
print('this path not exist')
for file in files:
if os.path.isdir(os.path.join(path,file)):
list_allfile(os.path.join(path,file),all_files)
else:
all_files.append(os.path.join(path,file))
return all_files
if __name__ == "__main__":
print(list_allfile(r'D:\学习资料\kira'))
结果:
['D:\\学习资料\\kira\\1\\4.txt', 'D:\\学习资料\\kira\\2.txt', 'D:\\学习资料\\kira\\3.py']
2.os模块的主要几个常用函数
os.path.join()
#coding=utf-8
import os
path=r'D:\学习资料\python'
path_new=os.path.join(path,'Python编程:从入门到实践.pdf')
print(path_new)
结果:
D:\学习资料\python\Python编程:从入门到实践.pdf
os.getcwd()
#coding=utf-8
import os
path_now=os.getcwd()
print(path_now)
结果:
C:\Users\kirazheng>py -3 C:\Users\kirazheng\Desktop\test2.py
C:\Users\kirazheng
应该是当前执行的目录
os.chdir()
#coding=utf-8
import os
os.chdir(r'D:\学习资料\python')
path_after=os.getcwd()
print(path_after)
结果:
C:\Users\kirazheng>py -3 C:\Users\kirazheng\Desktop\test2.py
D:\学习资料\python
切换后的目录
os.makedirs()
try:
os.makedirs(r'D:\学习资料\python\kira')
except FileExistsError:
print('have this dir')
结果:
新建文件夹,中间的文件夹没有的话,也建,try except 以后介绍
os.path.abspath()
#coding=utf-8
import os
path_abs=os.path.abspath(r'.')
print(path_abs)
结果:
C:\Users\kirazheng>py -3 C:\Users\kirazheng\Desktop\test2.py
C:\Users\kirazheng
相对路径变绝对路径
os.path.isabs()
print(os.path.isabs(r'.'))
print(os.path.isabs(r'D:\学习资料'))
结果:
False
True
判断是否是绝对路径
os.path.relpath()
print(os.path.relpath(r'D:\学习资料', r'D:\学习资料\python\kira'))
print(os.path.relpath(r'D:\学习资料\python\kira', r'D:\学习资料'))
结果:
..\..
python\kira
后面路径是start path,感觉就是看后面路径怎么到前面路径的
os.path.dirname() && os.path.basename() &&os.path.split()
#coding=utf-8
import os
path_new='D:\学习资料\python\Python编程:从入门到实践.pdf'
print(os.path.dirname(path_new))
print(os.path.basename(path_new))
print(os.path.split(path_new))
结果:
D:\学习资料\python
Python编程:从入门到实践.pdf
('D:\\学习资料\\python', 'Python编程:从入门到实践.pdf')
os.listdir()
#coding=utf-8
import os
print(os.listdir(r'D:\学习资料\kira'))
结果:
['1', '2.txt', '3.py']
列出该目录下的所有文件
os.path.exists() &&os.path.isfile() &&os.path.isdir()
#coding=utf-8
import os
print(os.path.exists(r'D:\学习资料\kira'))
print(os.path.isfile(r'D:\学习资料\python'))
print(os.path.isdir(r'D:\学习资料\python'))
结果:
True
False
True
很明显字面意思,路径存不存在,是不是文件,是不是文件夹