2017-06-16 1 views
0

私の関連するコード・ブロックは、次のとおりです。os.walkを使用してファイルの名前を検索して表示しますが、開くことはできません。パス名の問題?次のように

path = "\\Users\\Harmless\\Documents\\untitled" 
cellorder = [] 
cellcont = [] 
for roots, dirs, files, in os.walk(path): 
    for file in natural_sort(files): 
     if "Row" in file: 
      cellorder.append(file) 
      with open(file,'r') as txt: 
       print txt.readlines 
      #print "file = %s" % file 

は、これが成功した私が(コメントアウトとして)開きたいすべてのファイルを一覧表示するだろうが、私は、ファイル名にそれがで印刷されたのと同じ方法を渡すしようとすると、それを読むために:

IOError: [Errno 2] No such file or directory: 'Row0Col0Heat.txt' 

どうすればこの問題を解決できますか?各ファイル名でパス名と文字列の置換え全体を参照する必要がありますか?もしそうなら、なぜですか?パスを参照/利用するためのよりよい方法はありますか?

答えて

1

あなたはすでにあなたにも使用することができ、ベースパスを持っているので、あなたが

abs_file_path = os.path.abspath(file) 

で絶対パスを取得することができ、ファイルの絶対パスを使用してみてください:

abs_file_path = os.path.join(path, file) 

はそれが役に立てば幸い

+0

path.joinの助けがありましたが、今は新しい問題があります。「タイトルなし」とtxtファイルの間にサブディレクトリの別の層があります。私はループし、これらのサブディレクトリのそれぞれからすべてのtxtファイルを引っ張りたいのですが、これをどう扱うかについてのアドバイスはありますか? – Harmless

+0

'os.walk'が現在のディレクトリへのパスを保持する' path'ではなく 'roots'から' abs_file_path'をビルドする必要があります。 – TWReever

+0

@TWReeverどのように見えるのか教えてください。 – Harmless

関連する問題