Python程序读取文件

时间:2020-01-09 10:44:20  来源:igfitidea点击:

在本教程中,我们将看到使用Python读取文件的不同选项。

1.使用read()方法可以读取整个文件。
2.使用readline()和readlines()方法可以逐行读取文件。
3.逐行读取文件的更有效方法是遍历文件对象。
4.以二进制模式读取文件。

  1. 使用read()方法

f.read(size)方法读取并返回size字节。如果未传递size参数,或者未传递size参数,则将读取并返回文件的全部内容。

def read_file(fname):
  try:
    f = open(fname, 'r')
    s = f.read()
    print(s)
  finally:
    f.close()

read_file('F:\theitroad\abc.txt')

此处写入read_file()函数以读取一个以文件路径为参数的文件。在读取模式下使用open()函数打开文件,并使用read()方法读取文件。我们应该始终关闭文件以释放资源,这是在finally块中完成的。

另一种打开文件的方法是使用with关键字,它会自动关闭文件。首选与open一起使用,因为它会使代码更短。

def read_file(fname):
  with open(fname, 'r') as f:
    s = f.read(9)
    print(s)
  1. 使用readline()方法在Python中读取文件。

f.readline()从文件中读取一行。

def read_file(fname):
  with open(fname, 'r') as f:
    s = f.readline()
    print('Content- ', s)
  1. 使用readlines()方法。

f.readlines()方法读取列表中文件的所有行。

def read_file(fname):
  with open(fname, 'r') as f:
    s = f.readlines()
    print('Content- ', s)

我们还可以使用list(f)函数读取文件的所有行。

def read_file(fname):
  with open(fname, 'r') as f:
    s = list(f)
    print('Content- ', s)
  1. 遍历文件对象

read(size)或者f.readlines()读取文件的所有内容,如果文件很大,则效率低下,因为整个文件将被加载到内存中。从文件中读取行的内存效率更高,速度更快的方法是遍历文件对象。

def read_file(fname):
  with open(fname, 'r') as f:
    for line in f:
      # Empty string (‘’) is the EOF char
      print(line, end='')

也可以使用readline()方法编写类似的逻辑以逐行读取文件中的文件。

def read_file(fname):
  with open(fname, 'r') as f:
    line = f.readline()
    while line != '':
      print(line, end='')
      line = f.readline()
  1. 用Python读取二进制文件。

如果要读取二进制文件,则需要以" rb"模式打开文件。在以下用于复制图像的Python程序中,以二进制模式打开图像文件,然后将其写入另一个文件。

def copy_file():
  try:
    f1 = open('F:/theitroad/Java/Java Collections/collection hierarchy.png', 'rb')
    f2 = open('F:/theitroad/Python/newimage.png', 'wb')
    b = f1.read()
    f2.write(b)
    print('Coying image completed...')
  finally:
    f1.close()
    f2.close()