使用Python 3.5

时间:2016-02-29 09:40:26

标签: python mysql regex csv

我正在尝试编辑一个包含400列数据,包含19列的CSV文件。有两列(第三列和第四列)列出了个人名称,列出名称的方式是“LastName,FirstName”。

C00431445,"P80003338","Obama, Barack","DUCLOS, DUNCAN","CHICAGO","IL","606601303","OBAMA FOR AMERICA","ACCOUNTING MANAGER",77.65,08-AUG-08,"","","","SA17A","753821","5433431","P2008",

这是有问题的,因为当我尝试使用逗号分隔符将此文件上传到MySQL时,它会将这两列的名称分成两半。我想使用Python 3.5来选择这两列并仅从其中删除逗号,而不删除其他行中的逗号。

在编码方面,我有点新手,感谢任何帮助。我知道可以使用.split()分割这些列然后合并它们没有逗号,但是我想要一个更清晰的方法,它可以直接从这个文件中删除逗号。

2 个答案:

答案 0 :(得分:0)

使用csv模块进行读写

import csv

f = open('file.csv', 'rb')
reader = csv.reader(f)
your_list = list(reader)


f = open('file.csv', 'wb')
writer = csv.writer(f, delimiter=',', quotechar='"', quoting=csv.QUOTE_ALL)

for line in your_list:
   line[2] = line[2].replace(",","")
   line[3] = line[3].replace(",","")
   writer.writerow(line)

答案 1 :(得分:0)

在MySQL中,将列读入@variables,然后在将它们存储到实际列中时对它们进行操作:

LOAD DATA ...
    (id1, id2, @name1, @name2, ...),
    SET name1 = REPLACE(@name1, ',', ''),
        name2 = REPLACE(@name2, ',', '');