所以这里是我要做的基本情况。
以下面的文件为例,其中包含的数字如。
begin_file
one,1
two,2
three,3
four,4
five,5
然后在每个列表中用之前的总和建立第3项。然后将顺序切换到下面的匹配。
最后的文件
1,one,1
2,two,3
3,three,6
4,four,10
5,five,15
如何才能把数据写出来到输出文件中,如图所示,这是我下面的内容。
begin_file = open('in.dat', 'r')
final_file = open('out.dat', 'w')
total = 0
for line in begin_file:
line = line.rstrip('\n')
if len(line) > 0:
li = line.split(',')
total += int(li[1])
final_file.write(li[1], li[0], str(total))
begin_file.close()
final_file.close()
所以出现的异常是write()或writelines()正好需要一个参数 而我给了3个。
有没有办法让输出文件以这种格式写入?还是我处理这个问题的方式不对?谢谢大家的帮助
考虑使用 with
语句来打开你的输入和输出流。这确保了当你处理完它们时,它们会被正确地关闭(当你的 with
块结束)。)
您可以使用 print
声明的 file
要打印到文件的参数。
with open('in.dat') as begin_file, open('out.dat', 'w') as final_file:
total = 0
for line in begin_file:
line = line.rstrip('\n')
if line:py
li = line.split(',')
total += int(li[1])
print(li[1], li[0], total, file=final_file)
begin_file = open('in.dat', 'r')
final_file = open('out.dat', 'w')
total = 0
for line in begin_file:
line = line.rstrip('\n')
if len(line) > 0:
li = line.split(',')
total += int(li[1])
combined = [li[1], li[0], str(total)]
complete = ', '.join(combined)
final_file.write(complete + '\n')
begin_file.close()
print(final_file)
final_file.close()