0

私は初めてpythonで、次のコードが私を夢中にさせています。ディレクトリ内のファイルを一覧表示し、ファイルごとにいくつかの処理を実行します。私はIOError: [Errno2] No such file or directory: my_file_that_is_actually_there!

def loadFile(aFile):
  f_gz = gzip.open(aFile, 'rb')
  data = f_gz.read()
  #do some stuff...
  f_gz.close()
  return data

def main():
  inputFolder = '../myFolder/'
  for aFile in os.listdir(inputFolder):
    data = loadFile(aFile)
    #do some more stuff

ファイルは存在し、破損していません。の内容をチェックするときにPythonが最初にファイルを見つけ、myFolderその後それを見つけることができない可能性がある方法がわかりません...これは、任意のファイルでのみforループの2回目の反復で発生します。

注:この例外がループの2回目の反復でのみ発生するのはなぜですか?フォルダ内の最初のファイルが見つかり、問題なく開かれます...

4

1 に答える 1

2

これはopen、ローカル名(から返されるos.listdir)を受け取るためです。それはあなたがそれがで見るべきであることを意味することを知りません../myFolder。したがって、相対パスを受け取り、それを現在のディレクトリに適用します。これを修正するには、次のことを試してください。

data = loadFile(os.path.join(inputFolder, aFile))
于 2012-11-10T21:54:33.120 に答える