python调用程序call_Python下的subprocess.call()使用和注意事项

Python虽然有许多优秀的第三方库,但在实际使用的时候免不了使用一些cmd调用的程序,毕竟这类程序比较底层,更快、也更稳定。比如GDAL、FFmpeg、 ImageMagick等。

利用Python调用cmd的方法也有不少,例如os.system和subprocess.call(),本次主要介绍后者。同时也会说明一些避雷的注意事项。

subprocess 模块允许我们启动一个新进程,并连接到它们的输入/输出/错误管道,从而获取返回值。其中的subprocess.call()则可以调用windows系统cmd命令行执行额外的命令。

在使用subprocess.call()之前,需要保证调用的软件已经添加在系统的环境变量路径中。如GDAL:

image

我以GDAL中的gdalwarp函数为例

image

当程序能在cmd中正确运行时,我们才可能使用subprocess.call()调用它。

其次,你需要在python中安装subprocess这个库(好像有点废话)

image

完成这些废话步骤之后,就可以愉快的运行起来了。比如:

GDAL的影像拼接:

image

裁剪:(图略)

GIF制作:(图略)

图像拼接:

image

视频流的声音导入:(图略)

以下:

1、subprocess.call()的输出反馈有3个,分别是0,1,2。其中0代表正确执行,1和2都是错误执行,2通常是没有读取到文件,1的反馈目前未知。

2、windows的cmd是有输入字符长度限制的,据查,win7以上的系统大概是8k个字符长度(数字、英文),所以,一旦输入的字符长度过长,就需要分批次运行(暂时没有其他解法)。或者不使用cmd方法。其他操作系统未知。

到此为止

image

微信号:一个有趣的灵魂W关注我们,了解更多

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值