我有两个python文件。我想从file1.py
呼叫file2.py
,但已将其参数化。
相当于Shell的是:CALL file2.bat Input.txt
我尝试使用:os.system("file2.py Input.txt")
,但这是在记事本中打开文本文件。我希望将此文件作为file2.py
中的输入。
在file2.py
中,我将传递的参数检查为:print(f"First Argument : {sys.argv[0]}")
正确的方法是什么?
答案 0 :(得分:0)
尝试使用subprocess
:
import subprocess
subprocess.run(['python', 'file2.py', 'input.txt']) # this will be relative to the current directory
这是IMO的一种“肮脏”方式。我将亲自导入file2并从file1模块运行逻辑。
答案 1 :(得分:0)
这里的问题与os.system无关,但是您的操作系统不知道如何使用python打开.py文件。
sys.executable 包含当前运行的Python解释器的完整路径。
解决方案是:
os.system( sys.executable + " file2.py Input.txt" )
如果您位于主目录中,并且键入
,则它适用于python,python3 /usr/local/bin/python file1.py
对字符串“ python”进行硬编码,如
subprocess.run(['python', ...
不是一个好建议。