Python程序读取文件
时间:2020-01-09 10:44:20 来源:igfitidea点击:
在本教程中,我们将看到使用Python读取文件的不同选项。
1.使用read()方法可以读取整个文件。
2.使用readline()和readlines()方法可以逐行读取文件。
3.逐行读取文件的更有效方法是遍历文件对象。
4.以二进制模式读取文件。
- 使用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)
- 使用readline()方法在Python中读取文件。
f.readline()从文件中读取一行。
def read_file(fname): with open(fname, 'r') as f: s = f.readline() print('Content- ', s)
- 使用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)
- 遍历文件对象
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()
- 用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()