繁体   English   中英

找不到文件时 subprocess.call() 不会抛出错误

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM