我试图追加到.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()
有办法做到这一点吗?我是否需要重新定义然后重写文件?
答案 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
这可能不是大文件的最佳解决方案。