- Python数据持久化教程
- Python 数据持久化 - 主页
- Python 数据持久化 - 简介
- Python 数据持久化 - 文件 API
- 使用 os 模块进行文件处理
- Python数据持久化——对象序列化
- Python 数据持久化 - Pickle 模块
- Python 数据持久化 - Marshal 模块
- Python数据持久化——Shelve模块
- Python数据持久化——dbm包
- Python 数据持久化 - CSV 模块
- Python 数据持久化 - JSON 模块
- Python 数据持久性 - XML 解析器
- Python 数据持久化 - Plistlib 模块
- Python数据持久化-Sqlite3模块
- Python 数据持久化 - SQLAlchemy
- Python 数据持久化 - PyMongo 模块
- Python 数据持久化 - Cassandra 驱动程序
- 数据持久化-ZODB
- 数据持久化 - Openpyxl 模块
- Python 数据持久性资源
- Python 数据持久化 - 快速指南
- Python 数据持久性 - 有用资源
- Python 数据持久化 - 讨论
使用 os 模块进行文件处理
除了open()函数返回的 File 对象之外,还可以使用 Python 的内置库执行文件 IO 操作,该库具有 os 模块,该模块提供有用的操作系统相关函数。这些函数对文件执行低级读/写操作。
os 模块中的open ()函数与内置 open() 类似。但是,它不返回文件对象,而是返回文件描述符,即与打开的文件相对应的唯一整数。文件描述符的值 0、1 和 2 代表 stdin、stdout 和 stderr 流。从 2 开始,其他文件将被赋予增量文件描述符。
与open()内置函数一样,os.open()函数也需要指定文件访问模式。下表列出了 os 模块中定义的各种模式。
先生。 | 操作系统模块及描述 |
---|---|
1 |
os.O_RDONLY 仅供阅读 |
2 |
os.O_WRONLY 仅供写入 |
3 |
os.O_RDWR 开放阅读和写作 |
4 |
os.O_NONBLOCK 打开时不要阻塞 |
5 |
os.O_APPEND 每次写入时追加 |
6 |
os.O_CREAT 如果文件不存在则创建 |
7 |
os.O_TRUNC 将大小截断为 0 |
8 |
os.O_EXCL 如果创建且文件存在则出错 |
要打开一个新文件并在其中写入数据,请通过插入管道 (|) 运算符来指定O_WRONLY和O_CREAT模式。os.open() 函数返回一个文件描述符。
f=os.open("test.dat", os.O_WRONLY|os.O_CREAT)
需要注意的是,数据是以字节串的形式写入磁盘文件的。因此,使用前面的encode()函数将普通字符串转换为字节字符串。
data="Hello World".encode('utf-8')
os 模块中的 write() 函数接受该字节字符串和文件描述符。
os.write(f,data)
不要忘记使用 close() 函数关闭文件。
os.close(f)
要使用 os.read() 函数读取文件内容,请使用以下语句:
f=os.open("test.dat", os.O_RDONLY) data=os.read(f,20) print (data.decode('utf-8'))
请注意,os.read() 函数需要文件描述符和要读取的字节数(字节字符串的长度)。
如果要打开文件进行同时读/写操作,请使用 O_RDWR 模式。下表列出了 os 模块中重要的文件操作相关函数。
先生编号 | 功能及说明 |
---|---|
1 |
os.close(fd) 关闭文件描述符。 |
2 |
os.open(文件, 标志[, 模式]) 打开文件并根据 flags 设置各种标志,并根据 mode 可能设置其模式。 |
3 |
os.read(fd, n) 从文件描述符 fd 中最多读取 n 个字节。返回包含读取字节的字符串。如果已到达 fd 引用的文件末尾,则返回空字符串。 |
4 |
os.write(fd, str) 将字符串 str 写入文件描述符 fd。返回实际写入的字节数。 |