用python替换csv文件中的列,但不替换标题

时间:2016-07-22 18:07:53

标签: python csv

我一直在寻找几个小时而没有找到我正在寻找的东西......

我正在制作一个程序,该程序需要一个已编译的.csv文件,其中缺少一些信息,并询问用户他们想要添加什么,然后将其放在csv中但不影响标题行。然后使用添加文件保存文件。

看起来像(输入):

data 1, data 2, data 3
2,,4
4,,6
6,,3
3,,2

程序问“数据2列中你想要什么?”

回答:5

(输出):

data 1, data 2, data 3
2,5,4
4,5,6
6,5,3
3,5,2

所有帮助都非常感谢。

2 个答案:

答案 0 :(得分:1)

  1. 我们使用python上下文管理器打开输入文件和输出文件。
  2. 使用input()(python 3)或raw_input()(python 2)函数获取用户输入
  3. 抓住文件中的第一行并将其写出来而不更改任何内容并将其写出来
  4. 循环遍历文件的其余部分,将列拆分出来并将第2列替换为用户的输入

    with open('in.csv', 'r') as infile, open('out.csv', 'w') as outfile:
        middle_col = input('What would you like in data 2 column>: ')
        outfile.write(infile.readline())  # write out the 1st line
        for line in infile:
            cols = line.strip().split(',')
            cols[1] = middle_col
            outfile.write(','.join(cols) + '\n')

答案 1 :(得分:0)

我相信你的问题的主要部分(如何跳过标题)已在这里得到解答:

Skip the headers when editing a csv file using Python

如果您在阅读器上拨打next()一次,则会跳过第一行(标题)。然后你可以照常做for row in reader