Skip to main content
 首页 » 编程设计

python之我们如何找出某些 uuencoded 文件无法使用 Python 正确解码的原因

2025年05月04日9yxwkf

我们正在尝试解码一些嵌入在 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: 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 中解码这些时,没有弹出任何类型的错误,一切似乎都在正常工作。什么可能导致他们无法正确解码?有没有办法在我们处理它们时标记它?

请您参考如下方法:

>>> uu.decode(open('0000000000-11-005978.txt')) 
Warning: Trailing garbage 

源数据本身已损坏。行尾附近的 .. 进一步证明了这一点。