如何在python中替换csv中的特殊字符列表

时间:2016-09-13 21:52:28

标签: python regex csv pandas

我有一些csv文件,可能包含或不包含像“”à这样的字符,这是不可取的,所以我想编写一个简单的脚本,它将输入csv并输出带有这些字符的csv(或其内容)替换为更多标准字符,因此在示例中:

import csv, string
upload_path = sys.argv[1]
input_file = open('{}'.format(upload_path), 'rb')
upload_csv = open('{}_fixed.csv'.format(upload_path.strip('.csv')), 'wb')
data = csv.reader(input_file)
writer = csv.writer(upload_csv, quoting=csv.QUOTE_ALL)
in_chars = '\xd2\xd3'
out_chars = "''"
replace_list = string.maketrans(in_chars, out_chars)

for line in input_file:
    line = str(line)
    new_line = line.translate(replace_list)
    writer.writerow(new_line.split(','))

input_file.close()
upload_csv.close()

到目前为止,问题是我的代码似乎产生了一个可能错误编码的csv?任何帮助将不胜感激使这更简单和/或确保我的输出csv不强制不正确的正则表达式编码 - 也许使用熊猫?

尝试:

{{1}}

1 个答案:

答案 0 :(得分:1)

当您使用pandas标记标记问题时 - 这是一个大熊猫解决方案:

import pandas as pd

(pd.read_csv('/path/to/file.csv')
   .replace(r'RegEx_search_for_str', r'RegEx_replace_with_str', regex=True)
   .to_csv('/path/to/fixed.csv', index=False)
)