ofe*_*fer 27 python user-input spaces command-line-arguments argparse
使用python和argparse,用户可以使用-d作为标志输入文件名.
parser.add_argument("-d", "--dmp", default=None)
Run Code Online (Sandbox Code Playgroud)
但是,当路径包含空格时,这会失败.例如
-d C:\SMTHNG\Name with spaces\MORE\file.csv
Run Code Online (Sandbox Code Playgroud)
注意:空格会导致错误(标志只接受'C:SMTHNG\Name'作为输入).
error: unrecognized arguments: with spaces\MORE\file.csv
Run Code Online (Sandbox Code Playgroud)
花了我更长的时间来找到这个问题的解决方案......(没找到它的问答所以我自己发帖子)
Ill*_*huk 38
对于那些无法解析参数并仍然得到"错误:无法识别的参数:"的人,我找到了一个解决方法:
parser.add_argument('-d', '--dmp', nargs='+', ...)
opts = parser.parse_args()
Run Code Online (Sandbox Code Playgroud)
然后当你想要使用它时
' '.join(opts.dmp)
Run Code Online (Sandbox Code Playgroud)
ofe*_*fer 24
简单的解决方案:如果argparse用引号封装,则将空格填充的字符串视为单个参数.
这个输入工作并"解决"了这个问题:
-d "C:\SMTHNG\Name with spaces\MORE\file.csv"
Run Code Online (Sandbox Code Playgroud)
注意:论证围绕着它.
小智 7
今天也遇到了这个问题。
-d "foo bar"
Run Code Online (Sandbox Code Playgroud)
没有帮助。我必须添加等号
-d="foo bar"
Run Code Online (Sandbox Code Playgroud)
然后它确实起作用了。
| 归档时间: |
|
| 查看次数: |
26255 次 |
| 最近记录: |