2016-05-04 2 views
1

私は".gz"というファイルを含むフォルダを持っています。OSError:[Errno 2] "gz"ファイルを読むときにPythonでそのようなファイルやディレクトリがありません

"OSError: [Errno 2] No such file or directory: 'rgb-0.ppm.gz'" 

このスマート問題がある:私はサイズを読みたいときに

import matplotlib.pylab as plt, os 

from os import listdir 
from os.path import isfile, join 

mypath = '/export/students/sait/yedek' 

onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] 

size = [] 

for a in range(len(onlyfiles)): 
     print onlyfiles[a] 
     size.append(os.path.getsize(onlyfiles[a])) 
     print size[a] 

は、私は、このようなエラーが出ますか?

+2

驚きの問題のために働いているが、私はあなたがループのためにあなたを改善するための唯一のアドバイス持って、これを試してください: 'onlyfiles内のファイルのために:' 'プリント(ファイル); size.append(os.path.getsize(file)); print(size [-1]) ' - 通常はPythonに入るインデックスではなく、リストの要素を直接反復します。 –

+1

実際に結合されたパスをリストに追加しているように見えません。ちょうどfです。これは、あなたの望むことですか? – xthestreams

答えて

2

onlyfilesにはファイルのフルパスではなく、ファイルのベース名が含まれています。 (あなたの作業ディレクトリはmypathではないようです)。またos.chdir(mypath)あなたfor -loop前 onlyfiles = [join(mypath, f) for f in listdir(mypath) if isfile(join(mypath, f))]

たりすることができます:

あなたはどちらかがonlyfiles作成を修正する必要があります。

1
import matplotlib.pylab as plt, os 
from os import listdir 
from os.path import isfile, join 
mypath = os.path.join(os.getcwd(),'/export/students/sait/yedek') 
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))] 
size = [] 
for file in onlyfiles: 
     print file 
     file_size = os.path.getsize(file) 
     print file_size 
     size.append(file_size) 

これは私

関連する問題