我是python的新手,我正在尝试写入csv文件中的特定单元格,但我无法弄明白。
这是其中的一部分,但我不知道如何让它将得分(第3行)写入我想要的单元格。例如,单元格“B1”:
file = open(class_name + ".csv" , 'a')
file.write(str(name + " : " ))
file.write(str(score))
file.write('\n')
file.close()
答案 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)