如何在Python文档中使用windows文件路径__

如何在Python文档中使用windows文件路径__,python,windows,filepath,docstring,Python,Windows,Filepath,Docstring,我想在我的\uuu doc\uu用法字符串中为我的用户提供一个示例。以下是与我的问题有关的守则的重要部分 # jmetadata.py ''' usage: jmetadata.py inDirPath outFilePath example: jmetadata.py "\\\\Hal\\hal free agent 1\\backups\\videos\\" out.txt ''' <...deleted code...> def forPyWinTests():

我想在我的
\uuu doc\uu
用法字符串中为我的用户提供一个示例。以下是与我的问题有关的守则的重要部分

# jmetadata.py
'''
usage:     jmetadata.py inDirPath outFilePath
example:   jmetadata.py "\\\\Hal\\hal free agent 1\\backups\\videos\\" out.txt
'''

<...deleted code...>

def forPyWinTests():
    jmetadata("\\\\Hal\\hal free agent 1\\backups\\videos\\", "out.txt")

NUM_ARGS = 2
def main():
    args = sys.argv[1:]
    print args
    if len(args) != NUM_ARGS or "-h" in args or "--help" in args:
        print __doc__
        sys.exit(2)
    jmetadata(args[0], args[1])

if __name__ == '__main__':
    main()
    # print()
    # forPyWinTests()
但是,当我将示例复制到命令行时,我希望程序能够运行。相反,我得到:

>jmetadata.py "\\Hal\hal free agent 1\backups\videos\" out.txt
['\\\\Hal\\hal free agent 1\\backups\\videos" out.txt']

usage:     jmetadata.py inDirPath outFilePath
example:   jmetadata.py "\\Hal\hal free agent 1\backups\videos\" out.txt
注意上面的第二行。这是由
main()
中的
print args
命令产生的。这意味着args列表只有1个元素,
['\\\\Hal\\Hal free agent 1\\backups\\videos“out.txt']
。这对我来说没有意义

我通过编写一个windows.cmd文件做了更多的调查。下面是show_args.cmd:

rem show_args.cmd
echo %1 
echo %2
以下是运行的结果:

>show_args.cmd "\\Hal\hal free agent 1\backups\videos\" out.txt

>rem show_args.cmd

>echo "\\Hal\hal free agent 1\backups\videos\"
"\\Hal\hal free agent 1\backups\videos\"

>echo out.txt
out.txt
窗户似乎把东西分开了。我被难住了。有人知道这里发生了什么吗


我希望有人能分享一些见解。提前谢谢。

尝试删除尾随的反斜杠。更改此选项:

jmetadata.py "\\Hal\hal free agent 1\backups\videos\" out.txt
为此:

jmetadata.py "\\Hal\hal free agent 1\backups\videos" out.txt
在上面的测试运行中,Python看到的参数有:

['\\\\Hal\\hal free agent 1\\backups\\videos" out.txt']

后面的退格被解释为转义字符,因为它紧跟在一个
”前面,这会将您的参数转换为单个字符串(或者直到遇到一个未转义的
)。

您是否尝试通过python:python jmetadata.py“\\Hal\Hal free agent 1\backups\videos调用\“out.txt?谢谢你的回复,戈德曼。我就这么做了。它会导致相同的行为:
>python jmetadata.py“\\Hal\Hal free agent 1\backups\videos\”out.txt['\\\\Hal\\Hal free agent 1\\backups\\videos“out.txt']用法:jmetadata.py inDirPath outFilePath示例:jmetadata.py”\\Hal\Hal free agent 1\backups\videos\“out.txt>
谢谢Ryan。塔尔成功了。以前我尝试过制作
\uuuuu doc
示例:jmetadata.py“\Hal\\Hal free agent 1\\backups\\videos\\”out.txt。这会在末尾添加一个空格。这不起作用,因为我正在执行os.listdir(args[0])。它产生了:。。。对于os.listdir(inDirPath)中的文件名:WindowsError:[错误3]系统找不到指定的路径:'\\\\Hal\\Hal free agent 1\\backups\\videos\\/*.''谢谢您的帮助。爱与和平-乔
['\\\\Hal\\hal free agent 1\\backups\\videos" out.txt']