将路径解析为 python 脚本中的参数以及如何在 cmd window 中键入路径

Parse path as argument in python script and how to type the path in the cmd window

这部分代码总是returnsNone

import argparse
from pathlib import Path


parser = argparse.ArgumentParser()
parser.add_argument('-f', "--file_path", type=Path)

p = parser.parse_args()
print(p.file_path)

我需要了解为什么会这样。 我该如何解决它以及如何在 cmd window?

中正确键入路径

按预期工作

我将您给定的脚本保存为 SO_argparse_Path.py 并使用 python3 和参数 -f Downloads/ 将其保存为 运行。查看它如何按预期打印 Downloads folder:

$ python3 SO_argparse_Path.py -f Downloads/

应该打印:

Downloads

在 Windows 上,您可以 运行 在 CMD.exe 中使用类似的脚本,例如C:\:

python SO_argparse_Path.py -f C:\ 

应该打印:

C:\

内部有空格的路径应该用双引号括起来,见Handle spaces in argparse input

关于参数类型

来自 argparse 关于参数 type 的文档:

The argument to type can be any callable that accepts a single string. If the function raises ArgumentTypeError, TypeError, or ValueError, the exception is caught and a nicely formatted error message is displayed. No other exception types are handled.

(强调我的),另请参阅内置类型的示例,例如: parser.add_argument('datapath', type=pathlib.Path)

有关自定义参数处理程序,请参阅: path to a directory as argparse argument