filename='learning_python.txt'
with open(filename) as file_object:
----contents=file_object.read() 打开整个文件
----print(contents)
----for line in file_object: 逐行读取文件中的内容并打印
--------print(line)
----lis=file_object.readlines() 逐行读取文件中的内容并储存为列表
for line in lis:
print(line.strip())
我想用如上的方式分别打开文件,为什么只打印了一次文件内容呢?
在每个方式增加一行:with open(filename) as file_object:
filename='learning_python.txt'
with open(filename) as file_object:
----contents=file_object.read() 打开整个文件
----print(contents)
with open(filename) as file_object:
----for line in file_object: 逐行读取文件中的内容并打印
--------print(line)
with open(filename) as file_object:
----lis=file_object.readlines() 逐行读取文件中的内容并储存为列表
for line in lis:
----print(line.strip())
就可以打印三次 这又是为什么呢???
求大神解答~~
因为你第一次读取文件,读到了文件尾部,file_object这个文件对象内有一个指针,指向当前读到哪里,你读到了尾部,后面再读取,肯定是没有数据了。
而后面的代码则是重新打开了文件,所以又重头开始读取,所以会有三次打印。
这个文件对象的指针是可以设置的,可以使用file_object.seek(0, 0)
重新设置读取指针到头部。具体用法参见:http://www.runoob.com/python/file-seek.html