Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Python 3.5仅从CSV文件的两列中删除特定字符_Python_Mysql_Regex_Csv - Fatal编程技术网

使用Python 3.5仅从CSV文件的两列中删除特定字符

使用Python 3.5仅从CSV文件的两列中删除特定字符,python,mysql,regex,csv,Python,Mysql,Regex,Csv,我正在尝试编辑一个CSV文件,其中包含400万行19列的数据。有两列(第三列和第四列)列出了个人的名字,他们的名字是“LastName,FirstName” 这是有问题的,因为当我尝试使用逗号分隔符将此文件上载到MySQL时,它会将这两列的名称一分为二。我想使用Python3.5来选择这两列,并仅从其中删除逗号,而不删除其他行中的逗号 在编码方面,我是个新手,非常感谢您的帮助。我知道可以使用.split()拆分这些列,然后合并它们而不使用逗号,但是我需要一个更干净的方法,可以直接从该文件中删除逗

我正在尝试编辑一个CSV文件,其中包含400万行19列的数据。有两列(第三列和第四列)列出了个人的名字,他们的名字是“LastName,FirstName”

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


在编码方面,我是个新手,非常感谢您的帮助。我知道可以使用.split()拆分这些列,然后合并它们而不使用逗号,但是我需要一个更干净的方法,可以直接从该文件中删除逗号

使用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)

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

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

这看起来是有效的CSV,您使用什么工具将数据加载到MySQL?不完全确定“什么工具”是什么意思,我正在使用SQL查询创建、更改我的表以添加一个自动递增主键,然后进行查询,结果发现我的数据沿名称拆分,因为名字和姓氏用逗号分隔。我想附上我的查询,但显然在评论部分没有足够的空间。谢谢,经过更多的研究,我意识到CSV模块可能是我解决这个问题的最佳方式。
LOAD DATA ...
    (id1, id2, @name1, @name2, ...),
    SET name1 = REPLACE(@name1, ',', ''),
        name2 = REPLACE(@name2, ',', '');