很多时候,我们想要在p1.py程序中直接运行p2.py程序文件,或者想要在一个python程序中调用终端区的命令,比如直接运行一个程序就可以帮我安装很多个库,相当于在终端区运行 pip install module_name。
下面提供两种方法。
第一种:模块法
将另外一个python程序封装成一个我们想要运行的模块,在模块里面,将所有代码放到一个函数里面,在另外一个程序中导入运行就可以了。
实现过程:
代码:
# p3.py
import p4
p4.print_three()
# p4.py
def print_three():
print("hello world")
print("hello world")
print("hello world")
if __name__=="__main__":
print_three()
解释:
将p4.py变成一个模块,运行模块就相当于直接运行程序。
第二种:管道方法 Popen
代码:
# p1.py
import sys
from subprocess import Popen, PIPE, STDOUT
p = Popen([sys.executable, "p2.py"],stdout=PIPE, stdin=PIPE, stderr=STDOUT)
print("运行成功")
# p2.py
print("hello world")
print("hello world")
print("hello world")
运行结果:
上面的方法是直接运行程序,如果还想获得另外一个程序的运行结果,那么还需要加一些代码。
# p1.py
import sys
from subprocess import Popen, PIPE, STDOUT
p = Popen([sys.executable, "p2.py"],stdout=PIPE, stdin=PIPE, stderr=STDOUT)
# 查看交互的内容数据是怎样的
print(p.communicate())
# 这行代码是将另外一个程序的输出结果获取到,
content = p.communicate()[0]
# 原来是 bytes类型的数据,需要将获取到的内容进行解码
print(content.decode())
print("运行成功")
# p2.py
print("hello world")
print("hello world")
print("hello world")
结果:
解释:
如果直接运行其它程序还是非常简单的,除了导入库,只需要使用Popen就可以了,后面其它代码都是为了获取到输出的结果。
(全文完)
长按二维码,加关注!叶子陪你玩
欢迎转载,转载请注明出处!
欢迎关注公众微信号:叶子陪你玩
分享自己的python学习之路
网友评论