2016-05-18 4 views
0

私はこのコードを実行するとエラーが発生します: fout = open( 'M:\ projects \ EGU \ BS \ bsofab。 TXT」、 'W')私は書き込みのためにファイルを開いていますが、私が選択したファイル名はエラーを生成します22:

例外IOError:[errnoが22]無効なモード( 'W')またはファイル名: 'M:\プロジェクト\ EGU \ BS \' x08sofab.txt

は、私は、ファイルを変更した場合名前( 'M:\ projects \ EGU \ BS \ ofbsab.txt'、 'w')にはうまくいきます。誰かが何が起こっているか教えてくれますか?

おかげ

+3

チュートリアルのエスケープ文字に関するセクションはスキップしましたか? –

+0

[この質問](http://stackoverflow.com/q/15141761/4241932)を参照してください。 – Matthew0898

答えて

1

私はWindowsでのみ動作し、私は、ファイルパスのスラッシュとバックスラッシュはエスケープ文字」のために使用されているUNIXやMac環境のファイル名に前方に使用していることを発見しました。 \ bは "バックスペース"を意味します。

このようなパスにrを追加すると(r'M:\ projects \ EGU \ BS \ bsofab.txt '、' w ')、完全に動作します。

rは「raw」用であり、本質的に最後のバックスラッシュを無視することができます。

もっと複雑な解決策を見つけましたが、実装するのがはるかに簡単でした。

+0

最後のバックスラッシュだけでなく、すべてのバックスラッシュ。ファイル名にエスケープ文字を使用する理由はほとんどないので、生の文字列は完璧な解決策です。しかし、スラッシュがWindowsでもうまく働いていることに驚くかもしれません。 –

+0

説明をありがとう! – Rolf

関連する問題