我有一些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}}
答案 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)
)