【问题标题】:Specifying a directory path as a command line parameter in python 2.7在 python 2.7 中将目录路径指定为命令行参数
【发布时间】:2016-08-25 18:20:03
【问题描述】:

我在将路径指定为命令行参数时遇到问题。我在 Windows 上运行。

代码:

import sys
import os

startPath = sys.argv[1]
print startPath
print os.path.dirname(startPath)

命令行参数:

C:\Users\username\Documents\python scripts\New folder

输出:

C:\Users\username\Documents\python scripts\New folder

C:\Users\username\Documents\python scripts

我的问题:

因此,路径的最后一部分 (\New folder) 在目录名称中丢失了。

我做错了什么?

【问题讨论】:

    标签: python windows python-2.7 command-line-arguments


    【解决方案1】:

    您需要将命令行参数,即路径,放在双引号中:

    python myscript.py "C:\Users\username\Documents\python scripts\New folder"
    

    【讨论】:

    • 不带引号的输出将是C:\Users\username\Documents\pythonC:\Users\username\Documents
    【解决方案2】:

    您应该输入结尾的\,或者如果它不存在,则将其添加到您的代码中。否则os.path.dirnameNew folder 视为文件名。

    【讨论】:

    • 我想这可以满足 XYZ 的要求,但是如果参数是目录的路径,则没有理由使用 os.path.dirname,并且需要尾部斜杠是脆弱的。只需使用os.path.abspath 将其标准化为完全限定路径,并使用os.path.isdir 验证它是一个目录。
    猜你喜欢
    • 2013-12-07
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 2020-06-07
    • 1970-01-01
    • 2015-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多