该脚本对我在 Fedora 21 x86_64 上使用 uudecode 4.15.2 在 Python 3.4.1 下运行时运行良好:
import subprocess
subprocess.call("uudecode -o output_file.pdf input_file.txt", shell=True)
使用链接的 SEC 文件(长度:173,141 B;sha1:)e4f7fa2cbb3422411c2f2968d954d6bb9808b884,解码的 PDF(长度:124,557 B;sha1:)1676320e1d9923e14d19451c16688198bc93ca0d在查看时显示正确。
您的环境中可能存在其他问题导致问题。您可能想为您的问题添加其他详细信息。
从 python 执行命令行命令时是否存在某种输出限制?
如果“输出限制”是指正在写入的文件的大小uudecode,则不是。subprocess使用模块时唯一需要担心的“输出限制”类型是通过时stdout=PIPE或stderr=PIPE创建子进程时。如果子进程向这些流中的任何一个写入足够的数据,并且您的脚本没有定期耗尽它们,则子进程将阻塞(请参阅subprocess模块文档)。在我的测试中,uudecode什么也没写到stdoutor stderr。