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
广告