0

我正在将文本文件作为列表读取,并仅提取第一列数据,其中“”(键盘空间)作为拆分分隔符。

我正在尝试将生成的字符串数据写入一个新文件。

当我创建字符串数据并将其写入新文件时,新创建的文件中只存在字符串数据的最后一行。

例如,当我打印字符串数据时,我可以看到整个字符串。

graphics/1.jpg
graphics/2.jpg
graphics/3.jpg
graphics/4.jpg
graphics/5.jpg

但是,新文件已创建但仅包含最后一行:

graphics/5.jpg

我尝试使用“a”而不是“w”来编写在不同堆栈溢出线程中指定的新文件。

不知道我需要做什么才能将整个字符串数据写入新创建的文件。请帮忙!

with open(fig_file, "r") as f:
        for line in f:
            fields = line.split(" ")
            field1 = fields[0]
            print(field1)

with open("list.txt","w") as wp:
        wp.write(field1)
4

2 回答 2

2

您只在文件中写入一行,永远!

这应该有效。

lines = []
with open(fig_file, "r") as f:
        for line in f:
            fields = line.split(" ")
            field1 = fields[0]
            print(field1)

            lines.append(field1)


with open("list.txt","w") as wp:
        wp.writelines(lines)
于 2019-06-12T14:43:34.963 回答
1

您所做的只是将最后一个field1值写入输出文件。如果要写入所有字段,则需要在循环期间编写它们,如下所示:

with open(fig_file, "r") as f:
    with open("list.txt","w") as wp:
        for line in f:
            fields = line.split(" ")
            field1 = fields[0]
            wp.write(field1)
于 2019-06-12T14:42:14.327 回答