Python:无法在文本文件中使用循环

时间:2014-08-13 22:27:44

标签: python python-3.x

print("writing text to file")
prompt = '>'
data = [input(prompt) for i in range(3)]

with open('textfile.txt', 'w') as testfile:
    testfile.write("\n".join(data))

with open('textfile.txt', 'r') as testfile:
    print (testfile.read())
    data = [line.strip('\n') for line in testfile]
    data2 = testfile.readlines()

print(data)
print(data2)

在学习如何从文本文件中读取和写入后,我一直在尝试使用

for line in textfile

但无济于事。在上面的代码中,数据和data2都打印为空数组,这让我觉得我做错了。在我可以让testfile.readlines()工作之前,我从来没有能够使用for循环。由于某种原因,它甚至不会进入循环(即使我在列表理解之外做了循环标准)。

有没有人有任何想法我做错了什么?我找不到有这个问题的人。

2 个答案:

答案 0 :(得分:0)

您要做的第一件事是print(testfile.read()),它会读取文件的全部内容。之后,任何阅读都将失败。您需要回到文件的开头:

testfile.seek(0)

答案 1 :(得分:0)

当你打电话

    print (testfile.read())

将文件指针放在文件末尾。您需要通过调用

再次将其恢复到开头
    testfile.seek(0)

之后,这样当调用下一个文件读取方法时,它将能够再次从头开始读取文件。同样,在对data进行列表理解分配之后,您需要执行相同的操作,以便填充data2