Python 向csv文件中的行添加字符

Python 向csv文件中的行添加字符,python,python-3.x,csv,Python,Python 3.x,Csv,我正在尝试为我的运动卡创建一个清单程序。我想设计一个函数,查找我输入的卡号,如果卡号前面没有x,则在have列中插入一个x。我在下面添加了csv示例和相关代码 Have,Card ,1 Will Harridge ,2 Warren Giles ,3 Elmer Valo - Kansas City Athletics ,4 Carlos Paula - Washington Senators ,5 Ted Williams - Boston Red Sox ,6 Ray Boone - Det

我正在尝试为我的运动卡创建一个清单程序。我想设计一个函数,查找我输入的卡号,如果卡号前面没有x,则在have列中插入一个x。我在下面添加了csv示例和相关代码

Have,Card
,1 Will Harridge
,2 Warren Giles
,3 Elmer Valo - Kansas City Athletics
,4 Carlos Paula - Washington Senators
,5 Ted Williams - Boston Red Sox
,6 Ray Boone - Detroit Tigers

你会发现直接操作文本文件很难做到这一点;最好将整个数据结构读入本地Python数据结构(例如列表列表),修改内存中的数据,然后重写整个文件

如果您使用一个专门针对这种情况的库,这将更加容易。例如,首先,不要将卡号直接包含在“卡片”列中,而是为其创建一个单独的列,如下所示:

Number,Card,Have
1,Will Harridge,0
2,Warren Giles,0
3,Elmer Valo - Kansas City Athletics,0
4,Carlos Paula - Washington Senators,0
5,Ted Williams - Boston Red Sox,0
6,Ray Boone - Detroit Tigers,0
然后:

将熊猫作为pd导入
文件名='1956 tops.csv'
cards=pd.read\u csv(文件名,数据类型={'Number':int,'Have':bool},索引\u col='Number')
#例如,将卡5标记为已拥有:
cards.loc[5]['Have']=True
#写回同一个文件
cards.to_csv(文件名)

如果你的集合越来越大或者经常被修改,你可能会想用一个代替。

你想用x替换逗号吗?不,我想在一个X之前放置一个X,你可能想用这些提示,中间的手册<代码> \n>代码>是粗鄙的。此外,您还可以从csv阅读器创建一个
csv.writer
,这实际上没有意义,您要做的是再次打开文件(在读取后关闭文件)进行写入,然后在正确的位置用新添加的X将所有数据写回。@CostaK yourstring=“X”+yourstring
Number,Card,Have
1,Will Harridge,0
2,Warren Giles,0
3,Elmer Valo - Kansas City Athletics,0
4,Carlos Paula - Washington Senators,0
5,Ted Williams - Boston Red Sox,0
6,Ray Boone - Detroit Tigers,0