我当前遇到一个问题,其中我通过cmd运行python脚本,在该脚本中,我也在cmd中设置了该脚本上的函数所需的一些参数。因此,我一直在使用sys.argv。为了更好地解释,我将输入以下内容:
python script.py arg.yaml C:\Users\JohnDoe\Documents
因此,sys.argv是yaml文件,第二个是路径。请注意,第二个参数是可选参数,因此用户可能不会选择添加该参数。我的目标是在给定路径不存在的情况下引发错误。
我一直尝试以下方法:
try:
export_path = sys.argv[2]
if len(sys.argv) == 3:
try:
Path('export_path').is_dir()
except FileNotFoundError:
print(custom_message_error)
except IndexError:
export_path = None
但是该程序仍在继续,我无法捕获该错误。因此,如何检查sys.argv路径文件夹是否存在。
答案 0 :(得分:0)
我认为您在这里混淆了一些概念。如果找不到目录,pathlib.Path.is_dir
不会引发异常,而只是返回False
。此外,在将变量export_path
传递到Path
时,不要将其放在引号中:
from pathlib import Path
export_path = "C:\Users\JohnDoe\Documents"
if Path(export_path).is_dir():
print("Path exists!")
else:
print("Path does not exist")