python学习__在python代码中执行另一个带参python文件

  • 因为有时需要使用其他开源项目的代码,但很多开源代码的执行是在终端执行并且需要参数的,所以“怎么在自己的代码里执行其他项目的代码,尤其是带参数的”这个问题需要解决,这里介绍了两种方法,有其他方法或者文中有不对的地方欢迎交流、指教。

方法一: os.system

code.py是需要执行的开源代码,在其中做两处改动

(1)加上一行 import sys
(2)将传入的参数改为 sys.argv[1]

helloworld.py是自己的代码

import os
os.system(“python code.py %s” % 需要传入的参数)

举例
  • 原来的code .py
  sent='烫烫烫'
  print(sent)
  • 我们需要调用code.py,并修改其中的sent,则修改后的code.py
 import sys
 sent=sys.argv[1]
 print(sent)
# 其中sys.argv[1]就代表传入的参数,这种用法应该是可以传入多个参数的,没有过多研究,需要的可以自己研究一下
  • 在我们自己的代码 helloworld.py中
 import os
 sent='跳跳糖'
 os.system("python code.py %s" % sent)
如果只执行不传参
#在code.py中import sys
#在helloworld.py中import os
#os.system("python code.py")

方法二:exec

只执行不传参的情况
    with open('code.py','r',encoding='utf-8') as f:
    exec(f.read())


其实,没有找到用exec可以传参执行的用法,但是在使用的时候发现了一种情况:参数是利用add_argument从终端自动录入的参数,类似于上文的sys.argv[1],这样就没有办法利用os.system解决,这里用了一点比较取巧的方式,可能对其他项目不一定适用。
直接使用exec不传参,code.py会默认传入的是空串,然后在code.py代码中在使用传入的参数之前,更新参数,可以用文件读入的方式。

你可能感兴趣的:(python,python)