2

おそらく非常に初心者の質問..

しかし、私が試してみると:

f = open(os.path.join(os.path.dirname(__file__), filename),"w")

エラーが発生する

IOError: [Errno 2] No such file or directory: '/home/path/filename'

「w」と言ったので、まだそこにない場合は新しいファイルを書き込むのではないですか?

4

2 に答える 2

3

エラー メッセージは次のように再現できます。

import os
filename = '/home/path/filename'
f = open(os.path.join(os.path.dirname(__file__), filename),"w")
f.close()

# IOError: [Errno 2] No such file or directory: '/home/path/filename'

ここでの問題filenameは、絶対パスであるため os.path.join、最初の引数を無視して次を返すことfilenameです。

In [20]: filename = '/home/path/filename'

In [21]: os.path.join(os.path.dirname(__file__), filename)
Out[21]: '/home/path/filename'

したがって、存在しないファイルを指定しているだけでなく、存在しないディレクトリを指定しています。openディレクトリの作成を拒否します。

于 2013-02-13T18:31:38.670 に答える
0

文字通り書き込もうとしていますhome/path/filenameか?その場合、それ/home/pathは存在しないと不平を言っています。名前付きのディレクトリを作成する/home/pathか、既存のディレクトリ内にファイル名を選択してみてください(たとえば、実際のホームディレクトリへのパスを確認します)。相対パスを使用することもできます。 絶対パスと相対パスの違いについては、
http://en.wikipedia.org/wiki/Path_%28computing%29を参照してください。

于 2013-02-13T18:27:33.963 に答える