解析 Python 中的 Unicode 值的 CSV 文件

Parse CSV files for Unicode values in Python

首先 - 我是一名 DBA,对 python(或任何编码语言)的经验很少,因此非常感谢任何帮助。

我需要解析几百个 CSV 文件以发现可能存在的任何 unicode 字符,而手动执行此操作是不可能的。目的是定义当我们尝试将数据导入非 unicode 数据库时数据会有多大问题(这是一个更复杂的故事,但这是情况的要点)。

我已经能够打开 CSV 文件并阅读内容,包括 unicode 字符 - 如果我有无限的时间,我会用头撞墙,但是......我不。提前谢谢你能发出的任何光。

要将文件中的所有非 ASCII 字符收集到一个列表中,您可以这样做:

non_ascii_chars = []
with open('myfile.csv') as f:
    for line in f:
        for char in line:
            if ord(char) > 127:
                non_ascii_chars.append(char) 

ord内置函数returns一个字符的Unicode代码点; ASCII 字符的代码点在 0 - 127 范围内。

更简洁的版本,使用 list comprehension:

with open('myfile.csv') as f:
    non_ascii_chars = [char for line in f for char in line if ord(char) > 127]

将收集到的字符写入文件:

with open('non_ascii_chars.txt', 'w', encoding='utf-8') as f:
    f.write(''.join(non_ascii_chars))