我想在output1_file
中从input_file
写入行,但当我运行程序时,它不会将第一行写入输出文件。你知道吗
import csv
from statistics import mean
from typing import TextIO
def calculate_averages(input_file_name, output_file_name):
with (open(input_file_name, 'r')) as fin:
line=fin.readline()
while line:
line = fin.readline()
with open (output_file_name,'a') as f:
f.write((line.strip()))
f.write('\n')
f.close()
line = fin.readline()
return f
calculate_averages('input.csv', 'output1.csv')
我的输入文件是:
mandana,5,7,3,15
hamid,3,9,4,20,9,1,8,16,0,5,2,4,7,2,1
sina,19,10,19,6,8,14,3
sara,0,5,20,14
soheila,13,2,5,1,3,10,12,4,13,17,7,7
ali,1,9
sarvin,0,16,16,13,19,2,17,8
但我的输出文件是:
hamid,3,9,4,20,9,1,8,16,0,5,2,4,7,2,1
sina,19,10,19,6,8,14,3
sara,0,5,20,14
soheila,13,2,5,1,3,10,12,4,13,17,7,7
ali,1,9
sarvin,0,16,16,13,19,2,17,8
第一行不见了。你知道吗
因为您在第一次写入之前调用了
readline
两次。你知道吗一些提示:
1、用
with
语句打开文件时不需要使用f.close()
。你知道吗2,不需要返回
f
。你知道吗下面是我重构的代码。你知道吗
在写入输出文件之前,第一个
line=fin.readline()
中的line
值会被下一个line=fin.readline()
覆盖。你知道吗相反,您应该使用
for
循环将file对象作为迭代器进行迭代:相关问题 更多 >
编程相关推荐