如何从Python写入csv文件中的特定单元格

时间:2016-02-19 17:37:01

标签: python csv

我是python的新手,我正在尝试写入csv文件中的特定单元格,但我无法弄明白。

这是其中的一部分,但我不知道如何让它将得分(第3行)写入我想要的单元格。例如,单元格“B1”:

file = open(class_name + ".csv" , 'a')
file.write(str(name + " : " ))
file.write(str(score))
file.write('\n')
file.close()

3 个答案:

答案 0 :(得分:2)

熊猫会做你正在寻找的事情

import pandas as pd

# Read csv into dataframe
df = pd.read_csv('input.csv')
# edit cell based on 0 based index b1=1,0
df.ix(1,0) = score
# write output
df.to_csv('output.csv', index=False)

答案 1 :(得分:0)

您只需要用逗号分隔列,使用换行符分隔您的行。这并不神秘:

name1 = "John"
name2 = "Bruce"
job1 = "actor"
job2 = "rockstar"

csv_str = ""
csv_str += name1 +";"+job1+"\n"  #line 1
csv_str += name2 +";"+job2+"\n"  #line 2

file = open(class_name + ".csv" , 'a')
file.write(csv_str)
file.close()

这将生成2x2网格

答案 2 :(得分:0)

您可以使用python中的CSV读/写器。 CSV文件实际上没有单元格,所以我假设当你说“B1”时你的意思是“第二行中的第一个值”。请注意,文件的行为与电子表格的行为方式不同。特别是,如果您只是在文件的中间开始编写,那么您将在您编写的位置处写入内容。大多数情况下,您希望读取整个文件,进行所需的更改并将其写回。

import csv

# read in the data from file
data = [line for line in csv.reader(open('yourfile.csv'))]
# manipulate first field in second line
data[1][0] = 'whatever new value you want to put here'
# write the file back
csv.writer(open('yourfile.csv', 'w')).writerows(data)