判断一个文件是否存在
- os模块
os.path.exists()方法可以用来检验文件或文件夹是否存在,还有一些如os.path.isfile(),os.path.islink()等的方法;
import os
print(os.path.exists('1.jpg'))
print(os.path.exists('2.txt'))
print(os.path.isfile('1.jpg')) # 顾名思义
# 判断文件夹是否存在
print(os.path.exists(test))
- tyr语句
try:
f=open('1.txt')
f.close();
except:
print('file is not exist.')
- pathlib模块
import pathlib
f=pathlib.Path('1.jpg')
print(f.exists())
print(f.is_file())
os和os.path模块
os的常用属性
- os.name:获得操作系统的类型;
- os.linesep:获取当前操作系统的换行符;
- os.sep:获取当前操作系统所使用路径分隔符;
os提供的与目录有关的函数如下
函数 | 说明 |
---|---|
getcwd() | 返回当前的工作目录 |
listdir(path) | 返回path路径下的文件和目录信息 |
mkdir(path,[mode]) | 创建目录,mode为权限,如os.mkdir(path,mode=0o777),mode在非UNIX下被忽略或无效 |
makedirs(path1/paht2[,mode]) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2…) | 删除多级目录 |
chdir(path) | 把path设置为当前工作目录 |
walk(top[,topdown[,onerror]]) | 遍历目录树,返回一个元组,包含所有路径名、所有目录列表和文件列表三个元素 |
os.path模块提供的与目录相关的函数
函数 | 说明 |
---|---|
abspath(path) | 返回文件或目录的绝对路径 |
exists(path) | 用于判断目录或文件是否存在,存在返回True |
join(path1,path2) | 连接目录与目录或文件名,返回值即连接后的路径 |
splitext() | 分离文件名和扩展名 |
basename(path) | 从一个目录中提取文件名 |
dirname(path) | 从一个路径中提取文件路径,不包括文件名 |
isdir(path) | 用于判断是否为有效路径 |
需要注意的是路径中的\需要转义;
在使用join函数时,如果要拼接的路径中存在多个绝对路径,那么以从左到右最后一次出现的为准,该路径之前的参数都被忽略;
import os
print(os.path.join('E:\\code','E:\\python\\mr','Code','C:\\','demo'))
# ->C:\demo
高级文件操作
os模块提供的与文件相关的函数
函数 | 说明 |
---|---|
access(path,accessmode) | 获取对文件是否有指定的访问权限(读取/写入/执行)。accessmode的值为R_OK(读取),W_OK(写入),X_OK(执行)急或F_OK(存在)。如果有指定权限返回1,否则返回0 |
chmod(path,mode) | 修改path指定文件的访问权限 |
remove(path) | 删除path指定的文件路径 |
rename(src,dst) | 将文件或目录src重命名为dst |
stat(path) | 返回path指定的文件的信息 |
startfile(path[,operation]) | 使用关联的应用程序打开path指定的文件 |