2017-06-19 113 views
0

为什么下面的代码1工作而code2不工作?为什么一件事情有效,另一件事却不行?

代码1:

#Read from a file 

readMe = open('WriteToFile.txt', 'r').read() 
print(readMe) 

splitMe = readMe.split('\n') 

print(splitMe) 

代码2:

#Read from a file 

readMe = open('WriteToFile.txt', 'r') 
print(readMe.read()) 

splitMe = readMe.read().split('\n') 

print(splitMe) 

我收到了码2以下的输出: enter image description here

,而我所要的输出像代码1: enter image description here

回答

0

一旦你调用read()去浏览一个文件,文件“指针”(有点像光标)停留在文件末尾,并且再次调用read()什么都不做,因为你已经在最后了(没有什么可读的) 。您需要将指针移动到file.seek(0)的文件开头。

然而,最好是刚读一次为一个字符串,并使用:

readMe = open('WriteToFile.txt', 'r') 
content = readMe.read() 

print(content) 

splitMe = content.split('\n') 

print(splitMe) 

更妙的是使用with声明,它会自动关闭该文件为您提供:

with open('WriteToFile.txt', 'r') as file: 
    content = file.read() 
print(content) 
lines = content.split('\n') 
print(lines) 

虽然如果您的最终目标是获取线条,您可以使用readlines()

with open('WriteToFile.txt', 'r') as file: 
    lines = file.readlines() 
print(lines)