Python 中读取和写入文本文件


与其他语言一样,Python 提供了一些内置函数用于读取、写入或访问文件。Python 主要处理两种类型的文件:普通文本文件和二进制文件。

对于文本文件,每行都以特殊的字符 '\n' 结尾(称为 EOL 或行尾)。对于二进制文件,没有行尾字符。它在将内容转换为比特流后保存数据。

在本节中,我们将讨论文本文件。

文件访问模式

序号 模式及描述
1

r

只读模式。它打开文本文件进行读取。如果文件不存在,则会引发 I/O 错误。

2

r+

读写模式。如果文件不存在,则会引发 I/O 错误。

3

w

只写模式。如果文件不存在,则会先创建一个文件,然后开始写入;如果文件存在,则会删除该文件的内容,然后从开头开始写入。

4

w+

写读模式。如果文件不存在,则可以创建文件;如果文件存在,则数据将被覆盖。

5

a

追加模式。它将数据写入文件的末尾。

6

a+

追加和读取模式。它可以追加数据以及读取数据。

现在让我们看看如何使用 writelines() 和 write() 方法写入文件。

示例代码

在线演示

#Create an empty file and write some lines
line1 = 'This is first line. \n'
lines = ['This is another line to store into file.\n',
   'The Third Line for the file.\n',
   'Another line... !@#$%^&*()_+.\n',
   'End Line']
#open the file as write mode
my_file = open('file_read_write.txt', 'w')
my_file.write(line1)
my_file.writelines(lines) #Write multiple lines
my_file.close()
print('Writing Complete')

输出

Writing Complete

写入行之后,我们将一些行追加到文件中。

示例代码

在线演示

#program to append some lines
line1 = '\n\nThis is a new line. This line will be appended. \n'
#open the file as append mode
my_file = open('file_read_write.txt', 'a')
my_file.write(line1)
my_file.close()
print('Appending Done')

输出

Appending Done

最后,我们将看到如何使用 read() 和 readline() 方法读取文件内容。我们可以提供一个整数 'n' 来获取前 'n' 个字符。

示例代码

#program to read from file
#open the file as read mode
my_file = open('file_read_write.txt', 'r')
print('Show the full content:')
print(my_file.read())
#Show first two lines
my_file.seek(0)
print('First two lines:')
print(my_file.readline(), end = '')
print(my_file.readline(), end = '')
#Show upto 25 characters
my_file.seek(0)
print('\n\nFirst 25 characters:')
print(my_file.read(25), end = '')
my_file.close()

输出

Show the full content:
This is first line. 
This is another line to store into file.
The Third Line for the file.
Another line... !@#$%^&*()_+.
End Line

This is a new line. This line will be appended. 

First two lines:
This is first line. 
This is another line to store into file.

First 25 characters:
This is first line. 
This

更新于:2019年7月30日

2K+ 次浏览

启动您的 职业生涯

完成课程获得认证

开始学习
广告