我是Python脚本的新手,并且遇到了一个我无法弄清楚的问题。 在SO上检查了很多帖子,但找不到令人满意的问题解决方案。 这是我的python代码。
我的要求是我有现有的python脚本EXECUTE.py,它从命令行接受EXECUTESQL.cfg作为参数。 EXECUTESQL.cfg包含我在调用EXECUTE.py时需要执行的.SQL。 目前我可以使用此命令运行脚本,并且运行时没有任何问题。
$PYTHON3_EXEC EXECUTE.py EXECUTESQL.cfg
现在我想从另一个python脚本中调用上面的命令,我尝试按以下方式执行,但是无法执行。
with open("EXECUTE.py EXECUTESQL.cfg") as f:
code = compile(f.read(), "EXECUTE.py EXECUTESQL.cfg", 'exec')
exec(code)
每当我执行时,我都会收到以下错误
IOError: [Errno 2] No such file or directory: 'EXECUTE.py EXECUTESQL.cfg'
我不确定为什么我会这样,因为我很确定目录中都有EXECUTE.py EXECUTESQL.cfg。 有人可以帮助我解决问题以及如何解决问题
由于
Vikeng21
答案 0 :(得分:0)
open
功能打开1个文件。因此,当您执行open("EXECUTE.py EXECUTESQL.cfg")
时,它会尝试打开名为"EXECUTE.py EXECUTESQL.cfg"
的文件,当然,该文件不存在。要打开多个文件,您需要使用多个open
语句,如下所示:
with open("EXECUTE.py") as f1, open("EXECUTESQL.cfg") as f2:
但是当你想要做的只是运行另一个脚本时,你不应该使用compile
和exec
。为此,请查看subprocess module。
答案 1 :(得分:0)
能够找到问题的解决方案并运行脚本。希望它可以帮到某人。
import sys
import os
import EXECUTE
EXECUTE.executeSQL('EXECUTESQL.cfg', None)