【发布时间】:2018-01-14 18:50:35
【问题描述】:
我有一个 excel (*.xlsx) unicode/非英语/阿姆哈拉语字符,我想将其保存为 unicode csv。似乎没有直接的方法:我首先必须在 excel 中将其保存为 unicode.txt 并在 Sublime text 3/文本编辑器中删除制表符。不幸的是,选项卡在列之间并不一致。如何在 python 中使用正则表达式将 unicode.xlsx 转换为 unicode.csv 使用正则表达式? excel 表格有一些 NaN/Blank 单元格,因此表格在列之间没有规则的间距(制表符),并且很难使用“查找和替换”将制表符替换为逗号。有什么解决办法吗?
ስም የወርደሞዝ ጾታ ሥራ ዕድሜ
【问题讨论】:
-
您可以使用std-lib csv 模块:使用
delimiter='\t'读取数据并使用默认设置写入。如果您执行“全部替换”操作,则可能会插入虚假列,以防数据已经包含逗号。 -
但是,您确定 Excel 由于字符集而不允许导出为 CSV 吗?不能直接“另存为...”,然后手动添加“.csv”作为目标文件名的文件扩展名吗?
-
@lenz 我尝试使用 unicode 编码选项将 xlsx 文件另存为 csv,但它仍然忽略 unicode 编码并在我打开它时给出问号。我发现问题不在于使用例如 pandas、pd.read_csv 读取文件,编码本身无法识别。
-
我了解到您正在尝试使用 MS Excel 设置工作流程,并且 MS 工具对纯文本的 Unicode 编码的系统区分是一种痛苦。而且我认为您提出的解决方案(使用 RegEx 替换)不会减轻您的痛苦。但恐怕我无法为您提供更多帮助,因为有太多未指定的、可能相关的详细信息(例如,您为什么还要导出为 CSV 并在 Excel 中重新打开)。
标签: regex python-3.x csv unicode xlsx