如何写文本到临时文件?



我正试图将一些文本写入一个tempfile,但由于某种原因它不起作用。当我打印print(tmp.readlines())时,我只得到一个空列表。

正如您所看到的,我首先遍历sentences.txt并将与"I like cars."不匹配的每个句子写入tmp文件。然后我想把这些句子写回sentences.txt,所以我基本上过滤了sentences.txt文件。

with open("sentences.txt") as file:
with tempfile.NamedTemporaryFile(mode="w+") as tmp:
for line in file:
if line.rstrip() != "I like cars.":
tmp.write(line + "n")
with open("sentences.txt", "a") as f:
for line in tmp:
f.write(line + "n")

这里的问题是,您正在写入一个文件,然后试图从同一个文件读取。您需要在for line in tmp之前有tmp.seek(0),以便将文件指针(tmp)重置到文件

的开头。

最新更新