【发布时间】:2018-04-10 22:47:24
【问题描述】:
我运行以下 python 代码来打开一个 CSV,第一个元素中有一些额外的字符,当我在文本编辑器中查看 CSV 时不存在这些字符,比如 Notepad++。
priorities_file = open('priorities.txt', 'r')
print('Name of the file: ', priorities_file.name)
p = priorities_file.readlines()
print('Read Line: %s' % (p))
输出如下所示:
Name of the file: priorities.txt
Read Line: ['Autonomy\n', 'Travel\n',...
我了解'\n' 以及如何从每个元素中删除它,但我不明白为什么元素'Autonomy' 前面有附加字符。谁能告诉我这是为什么?删除那些我真的找不到如何复制的字符的方法的奖励积分。
【问题讨论】:
-
stackoverflow.com/questions/20848761/… 。看起来不错的讨论
-
如果这只是在第一行,那么它就是那个问题的精确副本(尽管我很确定我们有一个更好的问题,有一个实际的答案)。如果它在每一行上,正确的答案会更复杂一些。无论哪种方式,理想的 解决方案是更改 CSV 文件的创建方式,以首先不使用虚假 BOM。您是在创建文件,还是给您一些您无法控制的东西?
-
对于重复的问题,您可能想使用lightswitch05's answer,而不是接受的更复杂的问题。
-
这个特定的文件是使用 Excel 创建的,所以可能与它有关。老实说,我可以从编码的工作原理中学到很多东西。我无法告诉你 UTF-8 或 UTF-16 之间的区别。