2013-05-08 105 views
0

免責聲明我有一個類似的線程開始,但我覺得它有太大而曲折蟒蛇名

總之這是問題

import imghdr 
import os.path 
.... 
image_type = imghdr.what(os.path.normpath(filename)) 

失敗

IOError: [Errno 22] invalid mode ('rb') or filename: 'D:\\mysvn\\trunk\\Assets\\models\\character\\char1.jpg\r' 

在哪裏上述文件確實存在

幫助? :D

+0

謝謝:D我該如何刪除編程? – roundcrisis 2013-05-08 16:42:46

回答

2

在文件名末尾有一個回車符\r。這不是一個Windows文件名的有效字符,所以我懷疑文件名會起作用。

使用.rstrip('\r')將其刪除:

image_type = imghdr.what(os.path.normpath(filename.rstrip('\r'))) 

.rstrip()從字符串的結尾刪除字符,只有那些在一組,你的名字。

由於這是一個文件名,周圍的文件名的任何空白可能不正確,所以直線上升.strip()將工作太:

image_type = imghdr.what(os.path.normpath(filename.strip())) 

這從刪除製表符,換行符,回車和空格開始結束的字符串。

2
invalid mode ('rb') or filename: 'D:\\...\\char1.jpg\r' 
                ^^ 

在文件路徑中有一個尾隨回車符。首先將其剝離:

filename = filename.strip()