我们正在尝试解码嵌入在txt文件中的一些未编码的PDF文件。
我们遇到的问题是大多数PDF文件使用Python的uuencode库解码得很好。这是代码:
try:
decoded_file,m=uudecode(fileString)
except:
decoded_file=''
但是,某些文件在解码后无法打开。我们收到消息“打开此文档时出错。文件已损坏且无法修复。”
我们在Google上唯一能找到的是我们的文件可以使用base64编码,而Python uuencoding模块只支持base32。有没有办法可以判断它是否使用base64或base32进行了编码?
以下是我们成功解码的嵌入式uuencoded pdf的txt文件示例: http://www.sec.gov/Archives/edgar/data/1108046/000000000011020832/0000000000-11-020832.txt
这是一个失败的例子: http://www.sec.gov/Archives/edgar/data/914257/000000000011005978/0000000000-11-005978.txt
虽然我们在Python中对这些进行解码,但没有任何错误弹出,所有内容似乎都应该正常工作。什么可能导致他们无法正确解码?有没有办法在我们处理它们时标记这个?
答案 0 :(得分:1)
>>> uu.decode(open('0000000000-11-005978.txt'))
Warning: Trailing garbage
源数据本身已损坏。 ..
在接近结尾的行的开头处进一步证明了这一点。
答案 1 :(得分:0)
$ python -c "import urllib2; print len(urllib2.urlopen('http://www.sec.gov/Archives/edgar/data/914257/000000000011005978/0000000000-11-005978.txt').read().decode('uu'))"
43124
工作正常。