文章目录

  • 一、基本的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)
  • 读取文件:
  1. file.read([size]) 读取指定字符
    需要传入size参数代表读取几位字符。默认读取文件的所有内容。由于默认是从头开始读的,可以使用seek(offset [, whence])方法将文件指针移动到一个具体的位置(offset指跳过的字符个数(中文2个字符,英文和数字1个字符),whence指从文件哪里开始:0表示从文件头部开始(默认),1表示从当前位置开始,2表示从文件尾部开始)
  2. file.readline() 逐行读取
    当文件过大时使用read()方法很容易内存不足,所以通常会逐行进行读取
  3. file.readlines() 读取全部行(较少使用)
    将文件中所有的行读取处理,返回一个字符串列表

二、Python目录操作

Python中所有的目录相关操作都需要使用到os模块和os.path模块

  • os模块常用的属性及函数有:

属性或函数

说明

os.name

获取操作系统类型。nt为Windows;posix为Linux、Unix或MacOS

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指定的文件