Windows上的python文件名

时间:2013-05-08 16:41:34

标签: python windows

免责声明我有一个类似的线程开始,但我认为它太大而且错综复杂

简而言之,这就是问题

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

2 个答案:

答案 0 :(得分:2)

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

文件路径中有一个尾随回车符。剥离它:

filename = filename.strip()

答案 1 :(得分: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()))

这将从字符串的起始结尾删除制表符,换行符,回车符和空格。