解析 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))
首先 - 我是一名 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))