我的Python学习日记
Date | Log |
---|---|
2023.12.21 | 完成编写 |
11. 文件
基本函数:open()
用于打开一个文件,并返回文件对象,如果该文件无法被打开,会导致OSError
语法格式:
open(file, mode='r', buffering = -1, encoding = None , errors = None , newline = None , closefd = True , opener = None)
参数说明:
- file:必需,文件路径,一般是字符串
- mode:可选,文件打开模式,常见模式点这里
- buffering:可选,控制缓冲模式。
- 0:关闭缓冲
- 1:行缓冲(只在文本模式有意义)
- >1的整数:缓冲区大小
- 负数:使用系统默认缓冲
- encoding:可选,指定文件的字符编码,比如utf-8,不指定将使用默认编码
- errors:可选,指定编解码时的错误处理策略
- ‘strict’:默认,引发 UnicodeDecodeError 或 UnicodeEncodeError
- ‘ignore’:忽略错误
- ‘replace’:用 Unicode 替代字符替换错误
- newline:可选,用于控制文本模式下的换行符,可以是 None(使用系统默认值),
''
(表示所有换行符都会被转换为'\n'
),'\n'
(表示换行符不会被转换)等 - closefd:可选,如果为 True,表示在文件对象关闭时同时关闭底层的文件描述符。如果为 False,则文件描述符将保持打开状态。
- opener:可选,用于自定义打开文件的函数。如果指定了,必须是一个可调用对象,接受两个参数(file 和 flags),并返回一个打开的文件对象
常见打开模式 mode
mode | 描述 |
---|---|
‘r’ | 读取模式(默认) 指针会放在文件开头 |
‘w’ | 写入模式,会截断已存在的文件,或者创建新文件 |
‘+’ | 打开一个文件进行更新(可读可写) |
‘x’ | 独占创建模式,用于在文件不存在时创建文件 如果文件已存在,会引发 FileExistsError 异常。 |
‘a’ | 追加模式,将数据写入到文件末尾 打开文件时,文件指针会定位到文件的末尾 如果文件不存在,将会创建一个新文件 |
‘b’ | 二进制模式,在读取或写入文件时处理文件的二进制数据而不是文本数据 与读写模式组合,如wb:二进制写入模式 |
‘t’ | 文本模式(默认) |
11.1 file常用方法
方法 | 描述 |
---|---|
file.write(str) | 将字符串str内容写入文件,返回写入字符的长度 |
file.flush() | 将文件缓冲区中的数据立即写入到文件中,而不等到文件对象被关闭 |
file.read(num) | 读取文件中num个字符数,如果未指定或为负数则读取文件所有内容 返回从字符串中读取的字节 |
file.seek(offset,hence) | 将指针移到指定位置 offset:开始的偏移量,如果是负数则表示倒数第x位 hence:可选,表示要从哪个位置开始偏移,默认为0:从开头算起,1表示从当前位置算起,2表示从文件末尾算起 |
file.readline(num) | 用于从指针处读取整行 num可选,返回num大小的字节数 |
file.readlines(num) | 用于读取所有行直到EOF并返回列表,碰到EOF返回空列表 |
file.tell() | 返回文件指针当前位置。 |
11.2 os 文件/目录方法
需要import os
常用方法 | 描述 |
---|---|
os.listdir(path) | 返回指定目录下的所有文件和目录的列表。 |
os.mkdir(path) | 创建新的目录。 |
os.makedirs(path) | 递归创建新的目录。 |
os.remove(path) | 删除文件。 |
os.rename(src, dst) | 重命名文件或目录。 |
os.stat(path) | 返回文件或目录的状态信息。 |
os.environ | 包含环境变量的字典。 |
os.getenv(key, default) | 返回指定环境变量的值。 |
os.system(command) | 在子shell中执行系统命令。 |
os.getcwd() | 返回当前工作目录。 |
os.chdir(path) | 改变当前工作目录。 |
os.getpid() | 返回当前进程的进程ID。 |
os.sep | 路径分隔符。 |
os.pathsep | 路径分隔符(在os.path 模块中使用)。 |
os.linesep | 行分隔符。 |