我们如何找出某些uuencoded文件没有使用Python正确解码的原因?
我们正在尝试解码一些嵌入txt文件中的uuencoded PDF文件 我们遇到的问题是,大多数PDF文件都使用Python的uuencode库进行了很好的解码。代码如下:我们如何找出某些uuencoded文件没有使用Python正确解码的原因?,python,uuencode,Python,Uuencode,我们正在尝试解码一些嵌入txt文件中的uuencoded PDF文件 我们遇到的问题是,大多数PDF文件都使用Python的uuencode库进行了很好的解码。代码如下: try: decoded_file,m=uudecode(fileString) except: decoded_file='' 但是,有些文件解码后无法打开。我们收到消息“打开此文档时出错。文件已损坏,无法修复。” 我们在Google上唯一能找到的就是我们的文件可以使用base64编码,而Python uu
try:
decoded_file,m=uudecode(fileString)
except:
decoded_file=''
但是,有些文件解码后无法打开。我们收到消息“打开此文档时出错。文件已损坏,无法修复。”
我们在Google上唯一能找到的就是我们的文件可以使用base64编码,而Python uuencoding模块只支持base32。有没有一种方法可以判断它是使用base64还是base32编码的
下面是一个txt文件的示例,该文件包含我们成功解码的嵌入式uuencoded pdf:
下面是一个失败的例子:
当我们在Python中解码这些代码时,不会出现任何类型的错误,而且一切似乎都正常工作。是什么导致他们无法正确解码?有没有一种方法可以在我们处理它们时对此进行标记
>>> uu.decode(open('0000000000-11-005978.txt'))
Warning: Trailing garbage
源数据本身已损坏。这一点可以通过靠近末尾的一行开头的。
进一步证明
$ 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
工作正常。
除了:
不好,而且你实际上对Python生成的任何诊断都视而不见。这很有趣,但我对Python非常陌生,所以我不确定如何翻译你的方法。我试过了,我得到了和你一样的长度,但是当我试着写出这个文件时,我得到了和以前一样的错误。PDF在Adobe Reader中打开时仍然失败。啊,我没有检查生成的PDF的有效性,因为在解码过程中没有引发异常。我只能假设原稿是坏的。谢谢!这就是问题所在。我只想补充一点,即使有警告,输出PDF也可以正确打开。(我首先从.txt文件中提取了uuencoded部分)此外,如果将。
替换为M
,警告将消失。@Ignacio如何从。
中判断它已损坏?从维基百科的文章来看,
似乎是一个有效的开始,而
在这一行中是有效的。我也有同样的问题,用M替换它就可以了。这样可以吗?我在一些文件中也有“-”。为什么会这样?