[英]subprocess.call() doesn't throw and error when file is not found
我正在尝试从 Django Web 服务运行 python 脚本,并且我正在使用 subprocess.call() 方法并将它放在 try except 块中,因为当出现问题时我需要得到错误。 我发现当脚本的路径无效时不会引发错误,它只会在控制台上显示它,但我需要将它抛出,以便我可以在 except 块中捕获它。
这是我的代码。
try:
row = exec_SQL(f"SELECT [ID], [ProjectPath], [MainFileName] FROM [dbo].[WebserviceInfo] WHERE ProjectName='{project}'")
command = f'python {row[1]}\{row[2]} {model} {scenario}'
subprocess.call(command, shell=True)
except Exception as e:
error_message = str(e)
这是文件的路径+我需要的一些参数。
f'python {row[1]}\{row[2]} {model} {scenario}
在此先感谢您的帮助。
您可以在尝试执行脚本之前检查文件是否存在。 如果没有这样的文件,您可以自己引发异常。
就像是:
import os.path
if not os.path.isfile('script.py'):
raise Exception('File not found')
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.