Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/tfs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我们如何找出某些uuencoded文件没有使用Python正确解码的原因?_Python_Uuencode - Fatal编程技术网

我们如何找出某些uuencoded文件没有使用Python正确解码的原因?

我们如何找出某些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

我们正在尝试解码一些嵌入txt文件中的uuencoded PDF文件

我们遇到的问题是,大多数PDF文件都使用Python的uuencode库进行了很好的解码。代码如下:

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替换它就可以了。这样可以吗?我在一些文件中也有“-”。为什么会这样?