海绵宝宝撒
从另一个脚本调用Python脚本subprocess模块,并传递给它一些输入并得到它的输出:#!/usr/bin/env python3import osimport sysfrom subprocess import check_output
script_path = os.path.join(get_script_dir(), 'a.py')output = check_output([sys.executable, script_path],
input='\n'.join(['query 1', 'query 2']),
universal_newlines=True)哪里get_script_dir()函数在这里定义.一个更灵活的选择是导入模块。a调用一个函数,以获得结果(确保a.py使用if __name__=="__main__"保护,以避免在导入时运行不受欢迎的代码):#!/usr/bin/env pythonimport a # the dir with a.py should be in sys.pathresult = [a.search(query) for query in ['query 1', 'query 2']]你可以用mutliprocessing要在单独的进程中运行每个查询(如果执行查询是CPU密集型的,那么它可能会提高时间性能):#!/usr/bin/env pythonfrom multiprocessing import freeze_support, Poolimport aif __name__ == "__main__":
freeze_support()
pool = Pool() # use all available CPUs
result = pool.map(a.search, ['query 1', 'query 2'])