我们怎样才能弄清楚为什么某些uuencoded文件无法使用Python正确解码?

时间:2011-08-01 20:35:13

标签: python uuencode

我们正在尝试解码嵌入在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中对这些进行解码,但没有任何错误弹出,所有内容似乎都应该正常工作。什么可能导致他们无法正确解码?有没有办法在我们处理它们时标记这个?

2 个答案:

答案 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

工作正常。