2017-08-26 1 views
-1

私は単純に読み込み、画像と再びそれを保存し、次のスクリプトを実行しようとしています:例外IOError:[errnoを2]いいえそのようなファイルやディレクトリ - os.walk

from PIL import Image 
import os 

rootdir = '/home/user/Desktop/sample' 

for subdir, dirs, files in os.walk(rootdir): 
    for file in files: 
     im = Image.open(file) 
     im.save(file) 

をしかし私は次のエラーを取得します:

Traceback (most recent call last): 
    File "test.py", line 10, in <module> 
    im = Image.open(file) 
    File "/usr/lib/python2.7/dist-packages/PIL/Image.py", line 2258, in open 
    fp = builtins.open(filename, "rb") 
IOError: [Errno 2] No such file or directory: '1.jpg' 

だから、私は何をやろうとしていることは、単にファイル1.jpgを読まれると、再びそれを保存、1.jpgはディレクトリに配置されることを条件とします。

この問題を解決するにはどうすればよいですか?

ありがとうございました。

答えて

3

あなたは尾にrootに参加するos.path.joinを使用することができます。

for root, dirs, files in os.walk(rootdir): 
    for file in files: 
     path = os.path.join(root, file) 
     im = Image.open(path) 
     im.save(path) 
-1

はダブルスラッシュを試してみてください:あなたはfileだけ尾、全体ではなく、パスを保持しているため、完全修飾パスを提供する必要があるとしている

rootdir = '//home//user//Desktop//sample' 
関連する問題