-1

我试图在这里完成这个问题。我有一个包含以下描述的文件:

Title Title Title
Data: DD/MM/YYYY
var1 var2 var3 var4 var5 var6 var7
 1    2    3    4     5    -    N   
 8    9   10    11   12    -    N

我需要做的是在 var7 旁边添加一个名为 var8 的新列,并从列表中插入数字。像那样:

Title Title Title
Data: DD/MM/YYYY
var1 var2 var3 var4 var5 var6 var7  var8
 1    2    3    4     5    -    N     42
 8    9   10    11   12    -    N    202

到目前为止,我已经这样做了:

new_list = ['42', '202', '133', '144', '373', '277']


# Writing new row in .txt file

with open("dados.txt") as input_file, open("dados2.txt", "w") as output_file:
    for lineno, line in enumerate(input_file):
        line = line.rstrip()
        number = new_list[lineno % len(new_list)]
        line += ' ' + number
        output_file.write(line + '\n')

我的文件输出是这样的:

Title Title Title 42
Data: DD/MM/YYYY 202
var1 var2 var3 var4 var5 var6 var7    133
 1    2    3    4     5    -    N     144
 8    9   10    11   12    -    N     373

请注意,我无法添加新标题,并且这些数字开始打印在 .txt 文件的第一行有人可以帮我吗?

4

2 回答 2

0

尝试这个:

new_list = ['42', '202', '133', '144', '373', '277']

with open("dados.txt") as input_file, open("dados2.txt", "w") as output_file:
    # preprocessing
    output_file.write(input_file.readline())
    output_file.write(input_file.readline())
    output_file.write(input_file.readline()[:-1] + " var8\n")    # after this the pointer is at line 4

    for lineno, line in enumerate(input_file):
        line = line.rstrip()
        number = new_list[lineno % len(new_list)]
        line += '  ' + number                                    # two spaces look good
        output_file.write(line + '\n')
于 2021-05-15T02:31:01.700 回答
0

另一种可能的方法是进行调整new_list,使其看起来像这样:new_list = [' ', ' ', 'var8','42', '202', '133', '144', '373', '277'],使用 2 个空字符串(然后var8)将它们写入前 2 行的末尾,然后var8写入想要的第三行。这可能不如 edusankedt 的方式好,但它仍然增加var8了通缉犯。

于 2021-05-15T02:37:36.033 回答