Calling a python script with input within a python script using subprocess
我有一个脚本
使用
1 2 3 4 5 6 7 8 9 10 | #!/usr/bin/env python3 import os import sys from subprocess import check_output script_path = os.path.join(get_script_dir(), 'a.py') output = check_output([sys.executable, script_path], input=' '.join(['query 1', 'query 2']), universal_newlines=True) |
其中,这里定义了
更灵活的选择是导入模块
1 2 3 4 | #!/usr/bin/env python import a # the dir with a.py should be in sys.path result = [a.search(query) for query in ['query 1', 'query 2']] |
您可以使用
1 2 3 4 5 6 7 8 | #!/usr/bin/env python from multiprocessing import freeze_support, Pool import a if __name__ =="__main__": freeze_support() pool = Pool() # use all available CPUs result = pool.map(a.search, ['query 1', 'query 2']) |
另一种方法是使用内置功能
此函数获取一个字符串python代码并执行它
要在脚本文件中使用它,只需将cx1〔7〕作为文本文件即可,例如:
1 2 3 4 | #dir is the directory of a.py #a.py, for example, contains the variable 'x=1' exec(open(dir+'\\a.py').read()) print(x) #outputs 1 |