os.path
模块包含了许多与文件名和文件路径相关的有用函数,完整文档。导入时需要使用import.os,否则会出现错误NameError: name 'os' is not defined
。
在Windows上分隔文件路径用的是\,在Mac上用的是/,可以用os.path.join()
来返回所需要的分隔符,Mac示例代码:
import os
print(os.path.join("a","b","c"))
返回结果:
a/b/c
示例代码2:
import os
a=['1.txt','2.doc','3.xls']
for i in a:
print(os.path.join('Users',i))
输出结果:
Users/1.txt
Users/2.doc
Users/3.xls
显示与修改当前工作目录,示例代码:
import os
print(os.getcwd())#返回当前工作目录
os.chdir("/Users/zhangxiaoqing/PycharmProjects/1/venv")#修改当前工作目录
print(os.getcwd())#返回当前工作目录
输出结果:
/Users/zhangxiaoqing/PycharmProjects/1
/Users/zhangxiaoqing/PycharmProjects/1/venv
修改当前目录不存在,示例代码:
import os
os.chdir("/Users/zhangxiaoqig/PycharmProjects/1/venv")#修改当前工作目录
输出结果:
Traceback (most recent call last):
File "/Users/zhangxiaoqing/PycharmProjects/1/1.py", line 2, in <module>
os.chdir("/Users/zhangxiaoqig/PycharmProjects/1/venv")#修改当前工作目录
FileNotFoundError: [Errno 2] No such file or directory: '/Users/zhangxiaoqig/PycharmProjects/1/venv'
“绝对路径”:总是从根文件夹开始,用单个点.表示,例如c:\1.txt
“相对路径”:它相对于程序的当前工作目录,用两个点…表示,例如..\1.txt
创建文件夹示例代码:
import os
print(os.getcwd())
os.makedirs('/Users/zhangxiaoqing/PycharmProjects/1/2/3/4')#创建文件夹示例代码
绝对、相对路径示例代码:
import os
print(os.path.abspath('.'))#返回参数的绝对路径
print(os.path.isabs('.'))#判断是否是绝对路径
print(os.path.relpath('1'))#不加参数,使用当前目录为开始路径
print(os.path.relpath('zhangxiaoqing','Users'))#加参数,返回从start"Users"到Path相对路径
输出结果:
/Users/zhangxiaoqing/PycharmProjects/1
False
1
../zhangxiaoqing
返回斜杠前后内容示例代码:
import os
print(os.path.basename("/Users/zhangxiaoqing/PycharmProjects/1/1.jpg"))#返回最后一个斜杠后的内容,也叫基本名称
print(os.path.dirname('/Users/zhangxiaoqing/PycharmProjects/1/1.jpg'))#返回最后一个斜杠前的内容,也叫目录名称
print(os.path.split('/Users/zhangxiaoqing/PycharmProjects/1/1.jpg'))#返回目录名称和基本名称
a='/Users/zhangxiaoqing/PycharmProjects/1/1.jpg'
print(a.split(os.path.sep))#根据'os.path.sep'中的字符串分割路径,Linux前会加一个''空字符串
print(os.path.sep)
输出结果:
1.jpg
/Users/zhangxiaoqing/PycharmProjects/1
('/Users/zhangxiaoqing/PycharmProjects/1', '1.jpg')
['', 'Users', 'zhangxiaoqing', 'PycharmProjects', '1', '1.jpg']
/
获得文件大小及文件列表,示例代码:
import os
print(os.path.getsize('/Users/zhangxiaoqing/PycharmProjects/1/1.jpg'))#返回文件的字节数
print(os.listdir('/Users/zhangxiaoqing/PycharmProjects/1'))#返回path中的文件列表
输出结果:
48971
['2.html', '1.html', 'example.xlsx', '1.py', 'venv', '2.png', '3.png', '1.jpg', '1.png', '2', '.idea']
获得总文件大小示例代码:
import os
total=0
for i in os.listdir('/Users/zhangxiaoqing/PycharmProjects/1'):
total=total+os.path.getsize(os.path.join('/Users/zhangxiaoqing/PycharmProjects/1',i))
print(total)
输出结果:
423700
检查路径、文件、文件夹是否存在示例代码:
import os
print(os.path.exists('/Users/zhangxiaoqing/PycharmProjects/1'))#判断文件或路径是否存在
print(os.path.exists('/Users/zhangxiaoqing/PycharmProjects/2'))#判断文件或路径是否存在
print(os.path.isfile('/Users/zhangxiaoqing/PycharmProjects/1/1.jpg'))#判断文件是否存在
print(os.path.isfile('/Users/zhangxiaoqing/PycharmProjects/1/a.jpg'))#判断文件是否存在
print(os.path.isdir('/Users/zhangxiaoqing/PycharmProjects/1'))#判断文件夹是否存在
print(os.path.isdir('/Users/zhangxiaoqing/PycharmProjects/2'))#判断文件夹是否存在
输出结果:
True
False
True
False
True
False