2016-07-29 6 views
-1

イメージフォルダ内に特定のイメージが見つからない場合、プログラムがクラッシュします。 imagenameがimagecolumnに存在するが、フォルダ内に見つからない場合は、クラッシュします。イメージファイルをログに記録しようとしましたが失敗しました。トレースバックがフォルダ内にイメージが見つからない場合、プログラムがクラッシュしますが、ログ記録の問題に記録する必要があります。

ここ
C:\Python27\python.exe D:/New/a.py Traceback (most recent call last): 
File "D:/New/a.py", line 23, in <module> shutil.copy2(old_image,new_image) 
File "C:\Python27\lib\shutil.py", line 130, in copy2 copyfile(src, dst) 
File "C:\Python27\lib\shutil.py", line 82, in copyfile with open(src, 'rb') as fsrc: 
IOError: [Errno 2] No such file or directory: 'R0056SS.jpg' 
+1

クラッシュはどういう意味ですか?エラーメッセージが表示されますか?もしそうなら、それを分けてください。 – Julien

+0

C:\ Python27 \ python.exe D:/New/a.py トレースバック(最新の呼び出し最後): ファイル "D:/New/a.py"、23行目、 shutil.copy2(old_image 、new_image) ファイル "C:\ Python27 \ lib \ shutil.py"、行130、コピー2 copyfile(src、dst) ファイル "C:\ Python27 \ lib \ shutil.py"、82行目、copyfile open(src、 'rb')をfsrc: IOError:[Errno 2]このようなファイルまたはディレクトリはありません: 'R0056SS.jpg' – sqllover999

+1

この問題はどのようにロギングに関連していますか?ロガーが自動的に例外をキャッチしてログに記録することを期待していますか? –

答えて

1

ある

この私がこれまでに

import pandas as pd 
import os 
import shutil      # making a duplicate copy of a file 
import logging 
from os.path import splitext  # splits name & extension from a file 


class Image: 

    def image_fix(self): 

     # logging 
     LOG = "example.log" 
     logging.basicConfig(filename='example.log', 
          filemode='w', 
          format='%(asctime)s,%(msecs)d %(name)s %(levelname)s %(message)s', 
          datefmt='%H:%M:%S', 
          level=logging.DEBUG) 


     # console handler 
     console = logging.StreamHandler() 
     console.setLevel(logging.ERROR) 
     logging.getLogger("").addHandler(console) 


     # using panda to open and read csv 
     df = pd.read_csv('rgw.csv') 
     df['Image'] = df.ImageName + "_" + df.ImageWChain + ".jpg" 

     #checking if column "ImageWChain" has "jpg" extension,then concat .jpg 
     if ".jpg" not in df.ImageWChain: 
      df['ImageWChain'] = df.ImageWChain + ".jpg" 

     if ".jpg" not in df.ImageName: 
      df['ImageName'] = df.ImageName + ".jpg" 

     # write to csv 
     df.to_csv('rgw.csv') 
     old_image = df.ImageName 
     new_image = df.Image 

     #splits the imagename and extension 
     for item in enumerate(old_image): 
      name, ext = splitext(old_image[item[0]]) 
      if (ext == ""): 
       continue 
      oldFileName = name + ext 
      print("oldFileName = " + oldFileName) 
      newFileName = new_image 
      print("newFileName = " + newFileName) 

      #checks whether image file exits in folder or not 
      if (os.path.isfile(oldFileName)): 

       #creates duplicate copy of an image 
       for old_image, new_image in zip(df.ImageName,df.Image): 
        shutil.copy2(old_image,new_image) 

      else: 
       # if image not found in folder,then stores in log 


       logging.info(oldFileName) 

       # write into log 
       logger = logging.getLogger(oldFileName) 
       logger.debug(" <- This image was not found in the folder") 


if __name__=="__main__": 
    obj = Image() 
    obj.image_fix() 

きている。

 #checks whether image file exits in folder or not 
     if (os.path.isfile(oldFileName)): 

あなたはoldFileNameの存在をテストしたが、その後コピーしようとしているold_image

  #creates duplicate copy of an image 
      for old_image, new_image in zip(df.ImageName,df.Image): 
       shutil.copy2(old_image,new_image) 
+0

私はフォルダとcsvカラムにイメージが存在するかどうかをチェックしようとしています。 – sqllover999

関連する問題