我正试图在这里解决这个问题。我有一个文件有这样的描述:
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')