You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python从SEC EDGAR提交文件中提取UU编码图片?

SEC EDGAR申报文件中UU编码图片解码问题解决方法

问题背景

从SEC EDGAR公开公司监管申报全文中,已能通过Python分离DOCUMENT标签分隔的文件,但其中的UU编码图片无法转存为JPG。尝试过标准库uu、base64及在线解码工具均失败,示例UU编码块包含行首M标记及HTML转义字符(如"、&)。

解决步骤

问题核心在于SEC文件中的UU编码经过了额外处理(行首加M、HTML转义),需先预处理再解码:

  1. 提取UU编码块:从申报文件中截取begin到end之间的完整内容,排除begin和end行。
  2. 预处理编码内容:
    • 移除每行开头的M字符(及后续可能的空格)
    • 还原HTML转义字符:&quot;→"、&amp;→&、&lt;→<、&gt;→>
  3. 使用uu库解码并保存:将预处理后的内容传入uu.decode,输出二进制流保存为JPG文件。

代码示例

import uu
import io

# 假设已提取到UU编码块内容
uu_block = """begin 644 bxp-20241231_g3.jpg
M_]C_X  02D9)1@ ! @$ 8 !@  #_[@ .061O8F4 90     !_]L 0P &quot; 0$!
M 0$&quot; 0$! @(&quot; @($ P(&quot; @(%! 0#! 8%!@8&amp;!08&amp;!@&lt;)&quot; 8'&quot;0&lt;&amp;!@@+&quot; D*
MTD)^'_\\ X%S?_&amp;Z/^'_'_!&amp;W_I(3\\/\\ _P &quot;YO\\ XW7\\85% '[I?\\':7_!1S
M]AW]MS]GCX2&gt;%OV4/VE?#?CK4-#\\:7UUJUIH&lt;SN]K&quot;]H$5VW*.&quot;W%%?A;10!
&quot;_]D!

end"""

# 处理编码内容
lines = uu_block.splitlines()
# 过滤无效行
data_lines = [line for line in lines if not line.startswith(('begin', 'end')) and line.strip()]

processed_lines = []
for line in data_lines:
    # 移除行首的M及后续空格
    if line.startswith('M'):
        line = line[1:].lstrip()
    # 还原HTML转义
    line = line.replace('&quot;', '"').replace('&amp;', '&').replace('&lt;', '<').replace('&gt;', '>')
    processed_lines.append(line)

# 拼接成符合UU编码标准的内容
processed_content = '\n'.join(processed_lines) + '\n'

# 解码并保存图片
input_stream = io.StringIO(processed_content)
output_stream = io.BytesIO()

try:
    uu.decode(input_stream, output_stream)
    with open('bxp-20241231_g3.jpg', 'wb') as img_file:
        img_file.write(output_stream.getvalue())
    print("图片解码保存成功")
except Exception as e:
    print(f"解码失败: {str(e)}")

注意事项

  • uu库虽标记为“即将废弃”,但目前仍可正常使用;若需替代,可使用第三方库如python-uulib。
  • 若解码仍失败,检查是否有未处理的特殊转义字符,或编码块是否完整(需确保begin和end之间的内容无缺失)。

内容的提问来源于stack exchange,提问作者Dan Brendel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 01:50:15