为什么一件事有效,另一件事却没有?

时间:2017-06-19 09:56:45

标签: python python-3.x io

为什么以下code1有效,而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)

我为code2获取以下输出: enter image description here

虽然我希望输出像code1: enter image description here

1 个答案:

答案 0 :(得分: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)