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循环。由于某种原因,它甚至不会进入循环(即使我在列表理解之外做了循环标准)。
有没有人有任何想法我做错了什么?我找不到有这个问题的人。
答案 0 :(得分:0)
您要做的第一件事是print(testfile.read())
,它会读取文件的全部内容。之后,任何阅读都将失败。您需要回到文件的开头:
testfile.seek(0)
答案 1 :(得分:0)
当你打电话
print (testfile.read())
将文件指针放在文件末尾。您需要通过调用
再次将其恢复到开头 testfile.seek(0)
之后,这样当调用下一个文件读取方法时,它将能够再次从头开始读取文件。同样,在对data
进行列表理解分配之后,您需要执行相同的操作,以便填充data2
。