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()

