【问题标题】:Remove double quotes from CSV file从 CSV 文件中删除双引号
【发布时间】:2019-07-04 13:51:32
【问题描述】:

我想通过删除 csv 中的所有引号来清理字符串中间有双引号的 CSV 文件。
举个例子:安娜是“单纯的”。我希望引号被删除,这样我就只有安娜了

我正在尝试将 " 替换为空格,但我不能同时使用 w 和 r csv。如何清理数据?

import csv
with open('/var/lib/neo4j/import/MRCONSO.csv',"r+",encoding="utf-8") as csv_file:
    for data in csv_file:
        data = [d.replace('"', '') for d in data]

我希望 CSV 结构不会改变,只会删除引号。

【问题讨论】:

  • 大概您确实意识到从 csv 文件中删除引号会改变 csv 的解析方式?
  • 我的 csv 有一个字段终止符 \t ,如果我删除所有引号,我认为不会有问题
  • 酷,只要你知道。

标签: python python-3.x csv


【解决方案1】:

您不必重复行,只需阅读完整内容,像以前一样使用replace,然后编写新内容:

with open('/var/lib/neo4j/import/MRCONSO.csv', "r+", encoding="utf-8") as csv_file:
    content = csv_file.read()

with open('/var/lib/neo4j/import/MRCONSO.csv', "w+", encoding="utf-8") as csv_file:
    csv_file.write(content.replace('"', ''))

【讨论】:

  • 如果列的值带有逗号,它将不起作用。 >例如 >col1, col2 >"mere", "me,re" >转换后,你有 >col1, col2 >mere, me, re
  • 如果您将 csv 导入数据库。我建议不要在每次导入时转换数据。然后在数据库中转换数据。
【解决方案2】:

你可以使用熊猫:

import pandas

df = pandas.read_csv('file.csv',header=None)
df.replace('"', '', inplace=True, regex=True)
df.to_csv("file.csv",header=False, index=False)

【讨论】:

    猜你喜欢
    • 2014-05-05
    • 2022-01-20
    • 2017-02-13
    • 1970-01-01
    • 2014-05-29
    • 1970-01-01
    • 2021-12-16
    • 1970-01-01
    • 2017-02-07
    相关资源
    最近更新 更多