Python数据持久性 用os模块处理文件

Python数据持久性 用os模块处理文件

除了 open() 函数返回的文件对象外,文件IO操作也可以使用Python的内置库os模块进行,该模块提供了与操作系统相关的有用函数。这些函数在文件上执行低级别的读写操作。

os 模块的 open() 函数与内置的 open() 函数相似。然而,它并不返回一个文件对象,而是返回一个文件描述符,一个唯一的整数,对应于打开的文件。文件描述符的值0、1和2代表stdin、stdout和stderr流。其他文件将被赋予从2开始的递增的文件描述符。

open() 内置函数的情况一样, os.open() 函数也需要指定文件访问模式。下表列出了os模块中定义的各种模式。

Sr.No. 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_WRONLYO_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(file, flags[, mode]) 打开文件,根据flags设置各种标志,并可能根据mode设置其模式。
3 os.read(fd, n) 从文件描述符 fd 中最多读取 n 个字节。返回一个包含所读字节的字符串。如果fd所指的文件已经到了尽头,则返回一个空字符串。
4 os.write(fd, str) 将字符串 str 写到文件描述符 fd。返回实际写入的字节数。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程