python2.7使用subprocess32代替subprocess以避免多线程

使用subprocess进行外部命令调用当我们写python脚本的时候,如果需要调用外部命令,有很多的模板可以使用,标准包里面的os.popen,os.syst

大家好,python2.7使用subprocess32代替subprocess以避免多线程相信很多的网友都不是很明白,包括也是一样,不过没有关系,接下来就来为大家分享关于python2.7使用subprocess32代替subprocess以避免多线程和的一些知识点,大家可以关注收藏,免得下次来找不到哦,下面我们开始吧!

这样就可以直接调用run函数来运行命令了。当返回码为0时(Linux下认为命令执行正确),得到命令的标准输出。当返回码非0时(在Linux下,认为是命令执行错误)。 ),直接抛出异常。

在这里抛出异常,而不是直接返回其他特殊值,例如None。这样可以让脚本在出现问题时直接退出,而不是让错误继续传递下去。

Linux中有一些特殊的命令。一般情况下,返回码非0,所以可以用try和catch包装run函数。

python2.7使用subprocess32代替subprocess以避免多线程

使用subprocess32模块来替代subprocess模块

在python2.7中,如果仅在单个线程中使用子进程模板,您会发现一切正常。但是当你在多线程中使用subprocess模块时,在某些情况下,某些线程会直接阻塞进程。第一次遇到这个问题,我花了很长时间排查。最后Google了一下,发现是python 2.7中的subprocess模块的问题。这个问题在python3中已经得到解决。 Google 工程师将python3 中的代码向后移植到python2。 7、subprocess32项目创建完成。它的pypi链接是https://pypi.org/project/subprocess32/。项目描述中解释了subprocess中一些未解决的问题在fork和exec之间处理,使得整个模板在多线程下工作更加高效。稳定

您可以使用pip install subprocess32 安装它。

python2.7使用subprocess32代替subprocess以避免多线程

请注意,该软件包只能在Linux/Unix 中使用,不能在Windows 中使用。

使用起来比较简单,先尝试将subprocess32 作为subprocess 导入即可。如果失败,则直接导入subprocess。

其他选择

python2.7使用subprocess32代替subprocess以避免多线程

如果需要在python2.7中调用外部命令,可以尝试sh模块。该模块的用法与subprocess不同。

当使用shell=True添加subprocess时,相当于在bash中输入命令,使用起来比较简单。

用户评论

python2.7使用subprocess32代替subprocess以避免多线程
海盟山誓总是赊

这个技巧很实用,我也是在Python 2.7项目中遇到多线程问题,后来尝试用subprocess32替换subprocess才解决了!以前真的不知道存在这种方法,感谢分享!

    有7位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
话少情在

我还在纠结怎么解决Python 2.7的多线程问题,这个方案看起来很有希望。不过subprocess32和subprocess的使用有什么区别吗?

    有10位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
红玫瑰。

之前开发过程中也遇到过子进程挂起的现象很让人恼火!这种方法确实可以有效避免这个问题,太棒了!分享的经验真是一针见血,值得学习啊!

    有20位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
墨染殇雪

Python 2.7虽然版本比较老了,但是很多项目还是依赖它使用。这个方案确实是个很好的解决方案,让Python 2.7还能继续安全可靠地运行多线程程序。

    有8位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
烟花巷陌

我目前还在用Python3开发项目,这种问题在Python3中好像不会出现?不过感谢这位作者分享这么实用的技巧,以后遇到类似问题说不定也能派上用场!

    有11位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
拥菢过后只剰凄凉

subprocess32替换subprocess,这个方法听起来很特别。需要多了解一下两者的区别,然后再决定是否使用替代方案。

    有14位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
夏日倾情

Python 2.7虽然老了,可它毕竟是很多项目的基础,不能就轻易放弃啊!感谢作者分享这篇文章,为我们提供了一个解决难题的思路和方法。非常有帮助!

    有20位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
回到你身边

这个解决方案挺好的,但是对于不熟悉的读者来说,可能还是有点难理解。我希望作者可以提供一些更详细的代码示例和解释!

    有7位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
微信名字

我曾经尝试过使用subprocess处理多线程程序,结果导致系统卡死!感觉这个问题真的很复杂。感谢作者分享这个新的方法,希望能够避免类似的麻烦

    有12位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
等量代换

文章比较短小精悍,能将关键信息清晰传达出来,点赞!不过我觉得可以再添加一些关于subprocess32的使用场景和优缺点的分析,这样更有帮助!

    有20位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
涐们的幸福像流星丶

我非常喜欢这种简明扼要的解决方案!多线程编程确实是一个挑战,这个方法能够有效避免问题发生,太棒了!

    有6位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
゛指尖的阳光丶

还是Python 3好,多线程处理起来比较稳定。不过学习一下这种解决办法总是没坏处,以后说不定就能派上用场!

    有18位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
封锁感觉

对于我这种还在使用Python2.7的老司机来说,这个方法真是太重要了!感谢作者分享实用技巧,让我不再担心多线程问题困扰!

    有8位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
若他只爱我。

文章比较浅显,主要只是提到了解决方案,却没有详细的步骤和介绍。希望作者能够完善一下文章内容!

    有20位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
最怕挣扎

我最近也在学习Python的多线程编程,遇到了一些困难,这个方法给了我很大的启发,感觉可以尝试一下!

    有18位网友表示赞同!

python2.7使用subprocess32代替subprocess以避免多线程
幸好是你

我对Python3更感兴趣,不过我还是想了解一下Python2.7这种修复方案具体如何实现?希望作者能详细解释下具体的代码步骤!

    有20位网友表示赞同!

原创文章,作者:小su,如若转载,请注明出处:https://www.sudun.com/ask/127217.html

(0)
小su's avatar小su
上一篇 2024年9月1日 下午10:36
下一篇 2024年9月1日 下午10:37

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注