我正试图将一些文本写入一个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
)重置到文件