【问题标题】:Parse CSV files for Unicode values in Python在 Python 中解析 CSV 文件以获取 Unicode 值
【发布时间】:2021-04-22 22:03:50
【问题描述】:

首先,我是一名 DBA,对 python(或任何编码语言)的经验很少,因此我们将不胜感激。

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

我已经能够打开 CSV 文件并读取内容,包括 unicode 字符 - 如果我有无限的时间,我会用头撞墙,但是......我不会吨。在此先感谢您提供的任何光芒。

【问题讨论】:

  • 当您说“unicode 字符”时,您是指非 ascii 字符吗?
  • 正确,我正在寻找西里尔文、日文、中文、韩文等
  • 您在寻找unidecode module吗?或类似的?见Romanization of Unicode text。
  • 不,我只需要将找到的任何 unicode 字符转储到输出文件中而不进行转换。

标签: python csv unicode


【解决方案1】:

要将文件中的所有非 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 内置函数返回一个字符的 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))

【讨论】:

  • 这正是我所需要的。非常感谢您为回答我的问题所花费的时间/精力。
猜你喜欢
  • 1970-01-01
  • 2017-09-26
  • 2023-03-10
  • 2011-07-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-07
  • 1970-01-01
相关资源
最近更新 更多