Python创建子进程(在一个py程序中通过命令并行启动另一个py程序)

可以使用subprocess模块或者os模块
subprocess.Popen(), subprocess.run(), os.popen(), os.system()

示例如下:

main.py

import subprocess
import os

clickType = 'FINGEROPEN'
userID = 123456.234
f = open('log.txt', 'w')
f.write('{0} {1}'.format(clickType, userID))
f.close()

# subprocess.Popen('python sub.py')
# subprocess.Popen(['python', 'sub.py'])
# subprocess.run('python sub.py')  # 不是并行执行
# subprocess.run(['python', 'sub.py'])
# os.system('python sub.py')  # 不是并行执行
os.popen('python sub.py', 'w')

print('111')

sub.py

f = open('log.txt')
content = f.read()
clickType, userID = content.split()
print(type(userID))
print(clickType, userID)
f.close()

其中,subprocess.run()os.system()创建的子进程不是与主程序并行执行,而是等子进程执行完毕,再继续执行主程序,输出如下:

<class 'str'>
FINGEROPEN 123456.234
111

subprocess.Popen()os.popen()的输出如下:

111
<class 'str'>
FINGEROPEN 123456.234

另外,subprocess.Popen()在Linux中输入参数貌似只能是序列类型,否则会报错,其他几个命令不知道有没有这个问题

参考:
https://www.runoob.com/w3cnote/python3-subprocess.html
https://www.cnblogs.com/lincappu/p/8270709.html
https://blog.csdn.net/weixin_43895902/article/details/101372770
https://www.runoob.com/python/os-popen.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值