2017-06-15 5 views
2

私はすべてのファイルを反復処理するディレクトリへのパスを持っています。これはmyPath = "D:\workspace\test\main\test docs"のようになり、私がmyPathを印刷すると"D:\\workspace\test\\main\test docs"のように見えます。あなたが見ることができるように、それは最後のものを除くすべてのスラッシュにスラッシュを加えました。Pythonのパス文字列は最後のものを除いて余分なスラッシュを追加します

私がfor path, dirs, files in os.walk(myPath):を実行したとき、余分なスラッシュがない場合は機能しません。 なぜ、最後のスラッシュに余分なスラッシュを追加しないのですか?

別のコンピュータで動作していました。

+0

'myPath = r" D:\ workspace \ test \ main \ test docs "' –

答えて

3

'\t'ので意味を作るエスケープシーケンスである:それは2.4.1 String literals sectionに指定されているように、タブです。他のものはここでは意味をなさないだけですので、Pythonはこれらをあなたのために(無料で)エスケープします。

あなたはこれのように余分なバックスラッシュを追加することができます。

myPath = "D:\\workspace\\test\\main\\test docs" 

またはあなたがrでそれを付けることによって、生の文字列を使用することができます。

myPath = r"D:\workspace\test\main\test docs" 

その場合、:

r' or R」プレフィックスが存在する、ストリング内のエスケープシーケンスは、標準C.

によって使用されるものと同様の規則に従って解釈されるように、それはバックスラッシュ(\)は特別なものとして解釈ないであることを意味し、バックスラッシュとしてのみ使用できます。

+0

を試してください。答えをありがとう – user3494047

関連する問題