首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python Uudecode称之为腐败

Python Uudecode称之为腐败
EN

Stack Overflow用户
提问于 2015-07-06 19:03:09
回答 1查看 229关注 0票数 0

我正在从证券交易委员会的文件中提取PDF。他们通常是这样来的:

证交会提交示例

无论出于什么原因,当我将原始PDF保存到一个.text文件时,然后尝试运行

uudecode -o output_file.pdf input_file.txt

从python函数或允许从命令行执行命令的任何其他python函数中,生成的subprocess.call()文件都已损坏。如果我直接从命令行运行这个命令,就不会有任何损坏。

当仔细查看从python脚本输出的PDF文件时,该文件似乎过早结束。从python执行命令行命令时是否存在某种输出限制?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-07-06 19:48:22

这个脚本运行在Python3.4.1下的Fedora 21 x86_64和uudecode 4.15.2中运行得很好:

代码语言:javascript
复制
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=PIPEstderr=PIPE。如果子进程向这些流中的任何一个写入足够的数据,并且您的脚本不定期地将它们排出,子进程将被阻塞(请参阅subprocess模块文档)。在我的测试中,uudecode没有给stdoutstderr写任何东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31253616

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档