追加到某一行

时间:2015-05-04 19:59:39

标签: python csv append

我试图追加到.csv文件的某一行的末尾,而不是附加到文件的末尾。 我想在用户输入与.csv的第一列匹配的输入时执行此操作。

以下是一个例子:

file=open("class"+classno+".csv", "r+")
writer=csv.writer(file)
data=csv.reader(file)

for row in data:
    if input == row[0]:
        (APPEND variable TO ROW)

file.close()

有办法做到这一点吗?我是否需要重新定义然后重写文件?

1 个答案:

答案 0 :(得分:0)

您可以阅读整个文件,然后更改您需要更改的内容并将其写回文件(当完全覆盖时,它不会写回来)。

也许这个例子会有所帮助:

read_data = []

with open('test.csv', 'r') as f:
    for line in f:
        read_data.append(line)

with open('test.csv', 'w') as f:
    for line in read_data:
        key,value = line.split(',')
        new_line = line

        if key == 'b':
            value = value.strip() + 'added\n'
            new_line = ','.join([key,value])

        f.write(new_line)

我的test.csv文件在开头:

key,value
a,1
b,2
c,3
d,4

在我运行该示例代码之后:

key,value
a,1
b,2added
c,3
d,4

这可能不是大文件的最佳解决方案。