如何在csv文件的每一行中写入值?

时间:2019-04-23 18:29:57

标签: python csv

我使用循环为csv文件的每一行计算一个值,并希望将此值写为每一行中的新列。

我打开文件:

with open('hello.csv', 'r', encoding="latin-1") as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    list1 = list(readCSV)

然后遍历各行并计算一个新值:

for j in list1:
    dt=j[1]
    dt2=dt+1

如何在每行“ j”中将dt2写入现有csv文件“ hello.csv”中的新列?

  

从评论中复制:

这只是一个简单的例子。我已经将数据时间对象转换为正确的时区:

dtstr=j[1] #string 
hours, minutes = [int(t) for t in tstr.split(':')] 
dt = datetime.strptime(dtstr, '%Y-%m-%d %H:%M:%S') + 
              timedelta(hours=hours+4, minutes=minutes)

2 个答案:

答案 0 :(得分:0)

使用python angle*pi/180模块并创建新列,并在csv中写行,并在列表中添加outfile

new_column_value

答案 1 :(得分:0)

 with open('hello.csv', 'r', encoding="latin-1") as csvfile:
          readCSV = csv.reader(csvfile, delimiter=',')
          list1 = list(readCSV)
          for j in list1:
              dtstr=j[1] #string
              hours, minutes = [int(t) for t in tstr.split(':')]
              dt = datetime.strptime(dtstr, '%Y-%m-%d %H:%M:%S')         +timedelta(hours=hours+4, minutes=minutes)
              with open('hello out.csv', 'w', encoding="latin-1") as outfile:
                    outCSV = csv.writer(outfile,delimiter=',')
                    newline = j + [dt]
                    outCSV.writerow(newline)

我只成为一行的csv文件helloout.csv,这是带有新列的hello.csv文件的最后一行。我认为它会覆盖行,但我不知道为什么?