2016-08-11 36 views
-3

我得到的圖像的像素大小,我需要在像素如何在列表python中編寫if else條件?

寫一個if條件,如果JPG或TIFF:做一些別的 「0,0」

我如何能在下面寫代碼?

def get(self, request, **response_kwargs):  

    main_request = MediaRequest.objects.get(request_unique_id=self.kwargs['request_unique_id']) 

    files = MediaFile.objects.filter(request=main_request) 

    files_list = [] 

    for media_file in files: 
     files_list.append ({ 
       'preview' : "/render/" + str(main_request.request_unique_id) + "/" + media_file.filename,   
       'name' : media_file.filename,   
       'status' : media_file.status, 
       'comment' : media_file.comment, 
       'id':media_file.id, 
       'pixel' : 
          if "jpg" not in media_file.filename: 
           Image.open(settings.MEDIA_ROOT + main_request.request_unique_id + "/"+ media_file.filename).size 
          else: 
           return '0, 0' 
      }) 
+0

如果 「JPG」 不media_file.filename: ^ 語法錯誤:無效的語法給它 – user16301

+1

我無法重現您的錯誤。但是,只是指出,即使文件名不是jpg文件,也會冒着文件名帶有jpg文件的風險。檢查文件名中最後4個字母是否是'.jpg'會更好嗎? – Noam

+0

如何編寫if else條件來查找.jpg和tif,然後執行image.open命令...否則需要返回0,0? – user16301

回答

0

參見三元操作(或條件表達式):"X if C else Y"

https://www.python.org/dev/peps/pep-0308/

for media_file in files: 
    files_list.append ({ 
      'preview' : "/render/" + str(main_request.request_unique_id) + "/" + media_file.filename,   
      'name' : media_file.filename,   
      'status' : media_file.status, 
      'comment' : media_file.comment, 
      'id':media_file.id, 
      'pixel' : Image.open(settings.MEDIA_ROOT + main_request.request_unique_id + "/"+ media_file.filename).size if "jpg" not in media_file.filename else '0, 0' 
     }) 
+0

'code'File「/views.py」,in line 374,in 'pixel':Image.open(settings.MEDIA_ROOT + main_request.request_unique_id +「/」+ media_file.filename).size if「jpg」not in文件名「else」0,0「}) 文件」/PIL/Image.py「,第2286行,打開 %(文件名,如果文件名其他fp)) OSError:無法識別映像文件'/ pathof file/testfile .pdf''仍然出現錯誤 – user16301

0
'pixel' : Image.open(settings.MEDIA_ROOT + main_request.request_unique_id 
+ "/"+ media_file.filename).size if ("JPG" in media_file.filename.upper()) 
or ("TIF" in media_file.filename.upper()) else '0, 0'} 
相關問題