Python 文件输入/输出

Python文件方法

Python文件方法

  之前的文章我们讲到Python词典,在本教程中,晓得博客将带您了解 Python文件方法的操作。更具体地说,打开文件、读取文件、写入文件、关闭文件以及您应该了解的各种文件方法。

Python文件方法

Python File文件

  文件是磁盘上的命名位置,用于存储相关信息。它们用于将数据永久存储在非易失性存储器(例如硬盘)中。

  由于随机存取存储器 (RAM) 是易失性的(在计算机关闭时会丢失其数据),因此我们通过永久存储文件来使用文件以供将来使用数据。当我们想要读取或写入文件时,我们需要先打开它。完成后,需要关闭它,以便释放与文件绑定的资源。

  因此,在 Python 中,文件操作按以下顺序进行:

  1. 打开文件
  2. 读或写(执行操作)
  3. 关闭文件

在 Python 中打开文件

  Python 有一个内置open()函数来打开文件。此函数返回一个文件对象,也称为句柄,因为它用于相应地读取或修改文件。

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path

  我们可以在打开文件时指定模式。在 mode 中,我们指定是否要读取r、写入w或附加a到文件。我们还可以指定是以文本模式还是二进制模式打开文件。默认是在文本模式下阅读。在这种模式下,我们在读取文件时获取字符串。

  另一方面,二进制模式返回字节,这是处理图像或可执行文件等非文本文件时使用的模式。

python打开文件模式
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode

  我们也不能依赖默认编码,我们的代码在不同平台上的行为会有所不同。在文本模式下处理文件时,强烈建议指定编码类型。

f = open("test.txt", mode='r', encoding='utf-8')

在 Python 中关闭文件

  当我们完成对文件的操作后,我们需要正确关闭文件。关闭文件将释放与文件绑定的资源。它是使用close()Python 中可用的方法完成的。

  Python 有一个垃圾收集器来清理未引用的对象,但我们不能依赖它来关闭文件。

f = open("test.txt", encoding = 'utf-8')
# perform file operations
f.close()

  这种方法并不完全安全。如果在对文件执行某些操作时发生异常,代码会退出而不关闭文件。

  更安全的方法是使用try…finally块。

try:
   f = open("test.txt", encoding = 'utf-8')
   # perform file operations
finally:
   f.close()

  这样,即使引发导致程序流停止的异常,我们也能保证文件被正确关闭。Python文件方法中关闭文件的最佳方法是使用该with语句。这可确保在with退出语句内的块时关闭文件。

  我们不需要显式调用该close()方法。它是在内部完成的。

with open("test.txt", encoding = 'utf-8') as f:
   # perform file operations

在 Python 中写入文件

  为了在 Python 中写入文件,我们需要以 write 、 append模式打开它。我们需要小心这种w模式,因为如果它已经存在,它将覆盖到文件中。因此,所有以前的数据都将被删除。

  写入字符串或字节序列(对于二进制文件)是使用该write()方法完成的。此方法返回写入文件的字符数。

with open("test.txt",'w',encoding = 'utf-8') as f:
   f.write("my first file\n")
   f.write("This file\n\n")
   f.write("contains three lines\n")

  如果该文件test.txt不存在,该程序将创建一个在当前目录中命名的新文件。如果确实存在,则将其覆盖。

  我们必须自己包含换行符以区分不同的行。

用 Python 读取文件

  要在 Python 中读取文件,我们必须以读取r模式打开文件。

  有多种方法可用于此目的。我们可以使用read(size)方法读入尺寸数据的数量。如果尺寸 参数未指定,它读取并返回到文件末尾。

  我们可以text.txt通过以下方式读取我们在上一节中编写的文件:

>>> f = open("test.txt",'r',encoding = 'utf-8')
>>> f.read(4)    # read the first 4 data
'This'

>>> f.read(4)    # read the next 4 data
' is '

>>> f.read()     # read in the rest till end of file
'my first file\nThis file\ncontains three lines\n'

>>> f.read()  # further reading returns empty sting
''

  我们可以看到该read()方法返回一个换行符为'\n'。一旦到达文件末尾,我们会在进一步阅读时得到一个空字符串。

  我们可以使用seek()方法更改当前文件光标(位置)。同样,该tell()方法返回我们当前的位置(以字节数为单位)。

>>> f.tell()    # get the current file position
56

>>> f.seek(0)   # bring file cursor to initial position
0

>>> print(f.read())  # read the entire file
This is my first file
This file
contains three lines

  我们可以使用for 循环逐行读取文件。这既高效又快速。

>>> for line in f:
...     print(line, end = '')
...
This is my first file
This file
contains three lines

  在这个程序中,文件本身的行包含一个换行符\n。因此,我们使用print()函数的 end 参数来避免打印时出现两个换行符。

  或者,我们可以使用该readline()方法读取文件的各个行。此方法读取文件直到换行符,包括换行符。

>>> f.readline()
'This is my first file\n'

>>> f.readline()
'This file\n'

>>> f.readline()
'contains three lines\n'

>>> f.readline()
''

  最后,该readlines()方法返回整个文件剩余行的列表。当到达文件末尾 (EOF) 时,所有这些读取方法都返回空值。

>>> f.readlines()
['This is my first file\n', 'This file\n', 'contains three lines\n']

Python文件方法汇总

  文件对象有多种可用的方法。其中一些已在上述示例中使用。

  以下是文本模式下的完整方法列表,并附有简要说明:

python文件对象

  推荐:零基础如何开始学习Python

  推荐:Pycharm教程


晓得博客,版权所有丨如未注明,均为原创
晓得博客 » Python文件方法

转载请保留链接:https://www.pythonthree.com/python-file-operation/

滚动至顶部