修改csv文件python中的第一个元素

时间:2016-03-14 19:37:44

标签: python csv

我需要操作csv文件的第一个元素(1到1000的整数),同时还要执行其他操作。

现在我有这个代码,每隔三行打印一个新行。但我也想通过用计数器替换第一个元素来操纵第一个元素,每个第三行都有一个计数器。

我的csv文件在被操作之后如何看起来今天:

1, information, info
2, info, info 
, , ,
3, info, info

我希望它如何照顾它被操纵

1, info, info
2, info, info
, , ,
4, info, info

我的代码:

with open("mycsvfile.csv", 'r') as infile:
    readstream = csv.reader(infile, delimiter=',')
    with open("output.csv", 'wt') as output:
        outwriter = csv.writer(output, delimiter=',')
        i = 0
        #I want to manipulate the first element of the .csv-file here

        next(readstream) #to skip first row
        for row in readstream:
             outwriter.writerow(row)
             i += 1
         if i % 2 == 0:
             outwriter.writerow([])

2 个答案:

答案 0 :(得分:4)

您正在从正在阅读的文件中获取嵌套列表。列表中的项目是可变的,因此您可以使用要更改的项目的索引修改每个循环中的项目:

for row in readstream:
    row[0] = i
    outwriter.writerow(row)
    i += 1
    if i % 2 == 0:
        outwriter.writerow([])
        i += 1

答案 1 :(得分:0)

不确定这是否符合完整答案,但我不允许发表评论,因此请将其移至适当位置: 您想要修改行内的第一个值,那么如下所示:

if not i%3:
    row = modify(row[:1]) + row[1:] # where modify is some function that returns a list with a single modified value, i.e. modify = lambda x: [x.strip()] or something
    outwriter.writerow(row)