例如,我有一个csv:H 2 O in,如何让python读取csv并输出下标字符的任何实例? 这是我的代码(一些缩进变得奇怪但忽略了):
with open('sciencequestions.csv', 'r') as file:
file = csv.reader(file, delimiter=';')
for row in file:
if row[0] == chapter:
enter = input(row[1])
if enter is '':
print(row[2],'\n')
else:
print(row[2], '\n')
enter = input()
if enter is '':
continue
else:
continue
else:
continue
答案 0 :(得分:0)
Python 3可以读取包含下标的Unicode字符的文件。
但是,在Windows平台上,open
将使用mbcs
模式,该模式将8位代码页用于用户的区域设置。例如。西欧的Windows机器将使用windows-1252
代码页。
这符合记事本的行为,除非您选择" Unicode"否则它也会在同一个8位代码页中进行读写。 (又名utf-16-le)或" UTF-8"。其他MS产品也默认使用相同的有限8位代码页,例如Excel。
不幸的是,8位代码页只支持256个字符,因此仅限于最常见的字符。要使用代码页之外的字符,您需要使用" Unicode"进行编码。或" UTF-8"。
在Python中打开文件时,您将通过设置编码覆盖默认行为。
"的Unicode" (Aka utf-16-le)
open('sciencequestions.csv', 'r', encoding='utf-8')
" UTF-8"
open('sciencequestions.csv', 'r', encoding='utf-16-le')
还要记住,Windows控制台本身也不支持8位代码页之外的字符。如果要在控制台中打印,请使用https://github.com/Drekin/win-unicode-console