2012-02-10 10 views
-1

離れて行くことはありませんすべてのもの(物理= r "C:\ parsework \ glckpysdata.txt"、二重引用符/一重引用符/バックスラッシュなどのオープンコマンドへの直接入力...)何も二重バックスラッシュでパスを読み取ることができないようです。 これについて最もイライラする事は、私は同じスクリプトでまったく同じ構文を持っているし、それは完全にそこに動作します: Pythonのバックスラッシュを使用してPythonでファイルを開こうとのpythonに私は新しいです

thisguy = "C:\\parsework\\glckout\\" 
thisguy += nam 
g = open(thisguy) 

が同じスクリプト内にあり、正常に動作します。誰かが何が起こっているか教えてもらえますか?

+2

「ダブルバックスラッシュでパスを読み込むには、」無関係です。これは、Pythonが文字列に\を表示する単なる方法です。ファイルは存在しません。それは\とは関係ありません。ディレクトリ一覧を確認してください。 'dir'を使い、質問に出力を含めてください。 –

答えて

2

次のどちらかが正しいです:

phys = "C:\\parsework\\glckpysdata.txt" 

または

phys = r"C:\parsework\glckpysdata.txt" 

例外はファイルが存在しないことを意味し、またはあなたがそれにアクセスする権限がありません。パスとファイル名を再確認してください(hglckpysdata.txtにありますか?)

埋め込みバックスラッシュの表示方法は、単に二重バックスラッシュで表示されます。 \\はすべての文字列のバックスラッシュに対応します。

7

問題は、パス内の二重バックスラッシュではありません。これは、エラーメッセージ内の文字列の表示をアーティファクトで表したものです。実際の文字列には二重バックスラッシュは含まれません。

エラーメッセージと同様に、C:\parsework\glckpysdata.txtは存在しません。ところで

、この種の問題を回避するために、単純に転送を使用するにはパスのスラッシュ:

phys = "C:/parsework/glckpysdata.txt" 
+1

申し訳ありませんが、ファイル名は1文字で、私は馬鹿のように感じます、ありがとうございました。 – user1202297

+0

@ user1202297:「私はばかだと思う。今あなたは何を探すべきかを知っています。この答えを受け入れることを忘れないでください。 –

関連する問題