问题描述
我有一个用cp1250编码的.csv文件。我以为是这种情况,因为当我在Sublime Text中打开.csv文件时,选择cp1250是使我可以使用适当的字符查看文件的编码。
同样,文件为.csv的事实也无关紧要,因为尽管具有该扩展名,但其格式基本上是常规文本文件。
我想要的是将文件的行与我在脚本中编写的一些字符串进行比较。
首先,我必须设置.py文件的编码,否则它将给我 import React from 'react';
function Note () {
return (
<div> <button title='delete note' onClick={}>X</delete>
<li>
<input type='text'/>
</li>
</div>
)
}
export default Note
因此,我在第二行中添加了Non-ASCII character '\x9a' in file C:\Users\lezal\Desktop\convertJournal.py on line 4,but no encoding declared
(第一行是# coding=cp1250
),该编码与.csv文件的编码相同。
我用#! python2
用这种方式打开文件:
io
当我打印特定行时,在终端内显示openedFile = io.open(file,encoding = "cp1250")
allLines = openedFile.readlines()
我的文件Jan Mašek Pekařství s.r.o.
但是,当我运行elif时,我得到了:
elif x == "Jan Mašek Pekařství s.r.o. "
我尝试将.py文件和.csv文件都转换为utf-8,这给我带来了相同的问题,只是字符不同。而且我还尝试将.csv文件转换为.txt,因为实际上是这样,但是结果是相同的。
任何建议都将受到高度赞赏!
解决方法
将encoding
放在open
上时,Python使它读取的所有字符串都转换为Unicode。但是,您没有将其与if
中的Unicode字符串进行比较,因此无法对其进行比较。只需更改行:
elif x == u"Jan Mašek Pekařství s.r.o. ":
您还应该考虑转换为Python 3。