2016-11-11 51 views
0

我对python脚本编程非常陌生,但我有一个非常简单的任务,但我似乎被卡住了。我所要做的就是从.txt文件中读取数据并解析它。尝试从Python中的.txt文件读取数据时的Unicode解码错误

步骤我已

  1. 我已经下载从我的学校网站上的PDF文件,它包含的课程http://info.sjsu.edu/cgi-bin/pdfserv?ftok=soc-fall-courses
  2. 我转换PDF文件为.txt文件只需保存列表它作为一个.txt文件
  3. 谷歌搜索错误,以确定它是某种编码问题
  4. 使用终端命令文件-I [文件名]并返回结果sjsuclassdata.txt: text/plain; charset=unknown-8bit
  5. 中使用了很多方法从网上,以尝试将文件转换为UTF-8编码,但无济于事,我得到

    Traceback (most recent call last): 
        File "/Users/edward/MyPythonScripts/sjsuClassExtractor.py", line 25, in <module> 
        regexMatches = lectureRegex.findall(file.read()) 
        File "/Library/Frameworks/Python.framework/Versions/3.5/lib/python3.5/codecs.py", line 321, in decode 
        (result, consumed) = self._buffer_decode(data, self.errors, final) 
    UnicodeDecodeError: 'utf-8' codec can't decode byte 0xd0 in position 9: invalid continuation byte 
    

    因此,大家可以看到

错误信息,我真的失去了我应该从这里做什么,我已经证实,如果我读了一个包含类似数据的不同文件,那么一切正常。

+0

“我转换PDF文件为.txt文件简单地通过将其保存为一个.txt文件“您是否尝试过使用文本编辑器阅读此文件?因为这不是将PDF转换为文本文件的方式。 –

+0

@Rightleg您可以在Acrobat Reader中打开一个PDF文件并将“另存为”一个.txt文件。它会生成一个适当的(尽管不是UTF-8编码的)文本文件。请注意OP如何说“另存为”而不是“重命名”。 – Selcuk

+1

@Selcuk哦,我的坏,我理解为“从网络保存为.txt”。你知道,如果我这么说的话,那是因为我看到很多人认为重命名等同于转换... –

回答

1

假设原来的文本文件ANSI编码(默认与Acrobat Reader的“另存为文本”选项),这个命令将其转换为utf-8

iconv -f "iso-8859-1" -t "utf-8" sjsuclassdata.txt -o sjsuclassdata-utf8.txt 
+0

嗨,谢谢,当我在终端上运行上面的代码时,它似乎做了一些事情,然后返回'iconv:-o:没有这样的文件或目录 iconv:sjsuclassdata-utf8.txt:没有这样的文件或目录# –

+0

@EdwardLim它看起来像你的平台的iconv没有'-o'参数。在这种情况下,您可以使用'iconv -f“iso-8859-1”-t“utf-8”sjsuclassdata.txt> sjsuclassdata-utf8.txt' – Selcuk

相关问题