一. 文件操作与 open()
函数
Open函数是Python中用于打开文件的内置函数,其基本语法如下:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
各参数说明:
-
file: 要打开的文件名(必需),可以是相对路径或绝对路径。
-
mode:打开文件的模式,默认为'r'(读取模式)。常见模式包括:
-
'r'
: 只读模式 -
'w'
: 只写模式,如果文件存在则覆盖,不存在则创建 -
'a'
: 追加模式,将数据写入到文件末尾 -
'b'
: 二进制模式,与文本模式结合使用(如'rb'
或'wb'
) -
'+'
: 读写模式(如'r+'
或'w+'
) - buffering:设置缓冲策略,用于控制文件的读写性能。可以是0(无缓冲)、1(行缓冲)、大于1的整数(固定大小的缓冲)或-1(使用系统默认的缓冲策略)。
- encoding:文件的字符编码,如'utf-8'。
- errors:编码错误处理策略。
- newline:行尾换行符的处理方式。
- closefd:如果为False,则不关闭底层文件描述符。
- opener:用于自定义打开文件的函数(一般不需要使用)。
示例:
1.'r'
: 只读模式
2.'w'
: 只写模式
3.'a'
: 追加模式,将数据写入到文件末尾
4.'+'
: 读写模式(如 'r+'
或 'w+'
)
5.'b'
: 二进制模式,与文本模式结合使用(如 'rb'
或 'wb'
)
二. JSON 与 Pickle
Json:
-
用途:Json(JavaScript Object Notation)是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。它主要用于不同语言之间的数据交换,如C和Python之间。
-
序列化与反序列化:
-
序列化:将Python对象转换成Json格式的字符串,以便存储或网络传输。使用
json.dumps()
方法。 -
反序列化:将Json格式的字符串转换回Python对象。使用
json.loads()
方法。
-
-
文件操作:
-
使用
json.dump()
将对象直接写入文件。 -
使用
json.load()
从文件中读取对象。
-
示例:序列化:
反序列化:
Pickle:
-
用途:Pickle是Python特有的一个序列化模块,它可以将几乎所有的Python对象序列化为字节流,并可以反序列化恢复成原来的Python对象。但Pickle只适用于Python之间的数据交换,且不同版本的Python之间可能存在兼容性问题。
-
序列化与反序列化:
-
序列化:使用
pickle.dumps()
将对象序列化为字节流。 -
反序列化:使用
pickle.loads()
将字节流反序列化为Python对象。
-
-
文件操作:
-
使用
pickle.dump()
将对象直接写入文件(以二进制模式打开)。 -
使用
pickle.load()
从文件中读取对象(以二进制模式打开)。
-
示例:序列化:
反序列化:
三.Os模块
Os模块是Python中用于与操作系统交互的模块,它提供了丰富的功能,包括文件和目录操作、进程管理、环境变量管理等。
文件和目录操作
-
获取当前文件路径:os.path.dirname(__file__), os.path.abspath(os.curdir)
-
获取当前文件所在文件夹路径(父路径):os.path.dirname
(__file__)
-
判断路径是否存在:
os.path.exists(path)
-
拼接文件路径:
os.path.join(BASE_DIR, file_name)
-
切割路径:
os.path.split(path)
-
判断当前路径是否是文件:
os.path.isfile(path)
-
判断当前路径是否为绝对路径:os.path.abspath
-
判断当前路径是否为路径:os.path.isdir