快捷搜索:  汽车  科技

python读写文件的流程:python之文件操作

python读写文件的流程:python之文件操作newline:区分换行符。errors:是一个可选的字符串,用于指定如何处理编码和解码错误(不能在二进制模式下使用)。可选模式如下:buffering:是一个可选的整数,用于设置缓冲策略。encoding:用于解码或编码文件的编码的名称。

1 创建

Python 使用 open() 函数创建或打开文件,语法格式如下所示:

open(file mode='r' buffering=-1 encoding=None errors=None newline=None closefd=True opener=None)

参数说明如下所示:

file:表示将要打开的文件的路径,也可以是要被封装的整数类型文件描述符。

mode:是一个可选字符串,用于指定打开文件的模式,默认值是 'r'(以文本模式打开并读取)。

可选模式如下:

python读写文件的流程:python之文件操作(1)

buffering:是一个可选的整数,用于设置缓冲策略。

encoding:用于解码或编码文件的编码的名称。

errors:是一个可选的字符串,用于指定如何处理编码和解码错误(不能在二进制模式下使用)。

newline:区分换行符。

closefd:如果 closefd 为 False 并且给出了文件描述符而不是文件名,那么当文件关闭时,底层文件描述符将保持打开状态;如果给出文件名,closefd 为 True (默认值),否则将引发错误。

opener:可以通过传递可调用的信息 opener 来使用自定义开启器。

以 txt 格式文件为例,通过代码方式来创建,如下所示:

open('test.txt' mode='w' encoding='utf-8')

执行完上述代码,就为我们创建好了 test.txt 文件。

2 写入

上面是我们创建的文件 test.txt 没有任何内容,我们向这个文件中写入一些信息,对于写操作,Python 文件对象提供了两个函数,如下所示:

python读写文件的流程:python之文件操作(2)

使用这两个函数向文件中写入一些信息,如下所示:

wf = open('test.txt' 'w' encoding='utf-8') wf.write('Tom\n') wf.writelines(['Hello\n' 'Python']) # 关闭 wf.close()

上面我们使用了**close() 函数**进行关闭操作,如果打开的文件忘记了关闭,可能会对程序造成一些隐患,为了避免这个问题的出现,可以使用 with as 语句,通过这种方式,***程序执行完成后会自动关闭已经打开的文件***。如下所示:

with open('test.txt' 'w' encoding='utf-8') as wf: wf.write('Tom\n') wf.writelines(['Hello\n' 'Python']) 3 读取

对于文件的读操作,Python 文件对象提供了三个函数,如下所示:

python读写文件的流程:python之文件操作(3)

我们使用上面三个函数读取一下之前写入的内容,如下所示:

with open('test.txt' 'r' encoding='utf-8') as rf: print('readline-->' rf.readline()) print('read-->' rf.read(6)) print('readlines-->' rf.readlines()) 4 定位

Python 提供了两个与文件对象位置相关的函数,如下所示:

python读写文件的流程:python之文件操作(4)

下面通过示例对上述函数作进一步了解,如下所示:

with open('test.txt' 'rb ') as f: f.write(b'123456789') # 文件对象位置 print(f.tell()) # 移动到文件的第四个字节 f.seek(3) # 读取一个字节,文件对象向后移动一位 print(f.read(1)) print(f.tell()) # 移动到倒数第二个字节 f.seek(-2 2) print(f.tell()) print(f.read(1))5 其他

除了上面那些函数,Python 文件对象还有一些其他方法,如:isatty() 和 truncate()。

举例说明一下,如下所示:

with open('test.txt' 'r ') as f: # 检测文件对象是否连接到终端设备 print(f.isatty()) # 截取两个字节 f.truncate(2) print(f.read())

参考文档地址:

https://docs.python.org/zh-cn/3.7/library/index.html

猜您喜欢: