在python中的文本文件中的特定行中编写新列,其中包含标题和数字



我正试图在这里解决这个问题。我有一个文件有这样的描述:

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文件的第一行有人能帮我吗?

另一种可能的方法是调整new_list,使其看起来像这样:new_list = [' ', ' ', 'var8','42', '202', '133', '144', '373', '277'],有两个空字符串(然后是var8(,它将它们写入前两行的末尾,然后是var8写入所需的第三行。这可能不如edusankedt的方法好,但它仍然将var8添加到所需的行中。

试试这个:

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] + " var8n")    # 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')

相关内容

最新更新