1

私は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
4

2 に答える 2

1

問題はプログラムに起因するのではなく、シェルの解釈に起因します。

シェルを記述'd:\'すると、バックスラッシュが次の文字のエスケープ コマンドとして解釈されます。したがって、次のようにバックスラッシュをエスケープする必要があります。'd:\\'

于 2013-05-28T06:57:42.087 に答える