文章目录
- 一、基本的Python文件操作
- 二、Python目录操作
- 三、Python高级文件操作
一、基本的Python文件操作
- 创建和打开文件:
即Python内置的open()函数的使用方法,写法格式如下:
file = open('路径和文件名' [, 文件打开模式 [, 缓存大小 [, encoding='编码格式']]])
其中,文件打开模式的可选参数有:
值 | 说明 | 备注 |
r | 以只读模式打开文件 | 文件必须存在 |
rb | 以二进制只读模式打开文件 | 文件必须存在 |
r+ | 以读写模式打开文件 | 文件必须存在 |
rb+ | 以二进制读写模式打开文件 | 文件必须存在 |
w | 以只写模式打开文件 | 文件存在则覆盖,不存在则创建 |
wb | 以二进制只写模式打开文件 | 文件存在则覆盖,不存在则创建 |
w+ | 以读写模式打开文件 | 文件存在则覆盖,不存在则创建 |
wb+ | 以二进制读写模式打开文件 | 文件存在则覆盖,不存在则创建 |
a | 以追加模式打开文件 | 文件存在则追加,不存在则创建 |
ab | 以二进制追加模式打开文件 | 文件存在则追加,不存在则创建 |
a+ | 以读写模式(追加)打开文件 | 文件存在则追加,不存在则创建 |
ab+ | 以二进制读写模式(追加)打开文件 | 文件存在则追加,不存在则创建 |
缓存大小则需要传入一个非负整数,值为0表示不缓存,值为1表示缓存(默认),值大于1则表示为缓冲区的大小;
encoding参数注意需要把encoding=
加上,默认使用GBK编码格式
- 关闭文件:
file.close()
由于文件打开之后要及时将其关闭,否则会出现意想不到的问题。另外,当Python在打开文件的过程中出现异常,将导致文件不能被及时关闭
为了避免此问题的发生,推荐使用with语句进行文件处理。当使用with语句打开文件时,无论是否抛异常,都能保证with语句执行完毕后关闭已经打开的文件,也省去了手动关闭文件的步骤
with语句格式:
with open() as file:
IO代码块
- 写入文件:
file.write(content)
- 读取文件:
file.read([size])
读取指定字符
需要传入size参数代表读取几位字符。默认读取文件的所有内容。由于默认是从头开始读的,可以使用seek(offset [, whence])
方法将文件指针移动到一个具体的位置(offset指跳过的字符个数(中文2个字符,英文和数字1个字符),whence指从文件哪里开始:0表示从文件头部开始(默认),1表示从当前位置开始,2表示从文件尾部开始)file.readline()
逐行读取
当文件过大时使用read()方法很容易内存不足,所以通常会逐行进行读取file.readlines()
读取全部行(较少使用)
将文件中所有的行读取处理,返回一个字符串列表
二、Python目录操作
Python中所有的目录相关操作都需要使用到os模块和os.path模块
- os模块常用的属性及函数有:
属性或函数 | 说明 |
os.name | 获取操作系统类型。 |
os.linesep | 获取当前操作系统上的换行符 |
os.sep | 获取当前操作系统上的路径分隔符 |
os.getcwd() | 返回当前的工作目录 |
os.listdir(path) | 返回指定路径下的文件和目录信息 |
os.mkdir(path[,mode]) | 创建目录 |
os.mkdirs(path1/path2…[, mode]) | 创建多级目录 |
rmdir(path) | 删除目录 |
removedirs(path1/path2…) | 删除多级目录 |
chdir(path) | 把path设置为当前工作目录 |
walk(top[,topdown[,onerror]]) | 遍历目录树,返回一个包含所有路径名、目录列表和文件列表的元组 |
- os.path模块的常用目录操作函数有:
函数 | 说明 |
os.path.abspath(path) | 获取某个文件或目录的绝对路径 |
os.path.exists(path) | 判断某个文件是否存在 |
os.path.join(path,name) | 将目录和文件名拼接成一个字符串 |
os.path.splitext() | 将目录与文件名分开 |
os.path.basename(path) | 从一个目录中提取出文件名 |
os.path.isdir(path) | 用于判断是否为有效路径 |
三、Python高级文件操作
os模块中包含的高级文件操作函数:
函数 | 说明 |
access(path,accessmode) | 获取对文件的访问权限。accessmode取值为R_OK(读),W_OK(写),X_OK(执行)或F_OK(存在),若有则返回1,无则返回0 |
chmod(path,mode) | 修改path指定的文件访问权限 |
remove(path) | 删除指定路径所在的文件 |
rename(filename1,filename2) | 将文件名filename1改为filename2 |
stat(path) | 返回path指定文件的信息 |
startfile(path[, operation]) | 使用关联的应用程序打开path指定的文件 |