【发布时间】:2013-05-28 06:44:48
【问题描述】:
我是 Python 的初学者。下面是 Python 命令行参数的测试代码。如果从命令行使用不同的参数格式执行,我会得到不同的结果,但感觉很奇怪,谁能帮我理解为什么?
1, $test.py d:\ --> this seems ok for os.walk call
2, $test.py 'd:\' --> this will cause nothing output
顺便说一句:我使用的是 Python 2.7.3
测试代码:
import os
import sys
if __name__ == '__main__':
argMock = 'D:\\'
path = len(sys.argv) > 1 and sys.argv[1] or argMock
for root, dirs, files in os.walk(path):
for name in files:
print name
【问题讨论】:
-
您可以试试
$test.py 'd:'或$test.py 'd:\valid_folder'吗?可能是外壳问题。 (我没有窗口 cmd 行来测试它。) -
试试
$test.py 'd:\\'。第一个反斜杠转义下一个字符 ('),因此字符串未终止。 -
感谢您的回复。是的,我刚刚测试过,但遇到了同样的问题。 $test.py 'd:\folder' 没有输出; $test.py d:\folder 得到了正确的输出。
-
嗨 Jakub M. 感谢您的回复,但遇到了同样的问题:$test.py d:\\folder 输出正确的内容; $test.py 'd:\\folder' 什么也不输出。
-
在猜测中,单引号 包含在路径名中。我不熟悉您的外壳或操作系统,但您最后的评论指出了这一点。尝试去掉路径两边的单引号。
标签: python shell python-2.7