2011-01-06 120 views
2

当我使用mimetypes模块时,我真的很在意add_type一串'缺失'mimetypes,有没有办法可以做到以下几点?扩展模块

# This file is named mimetypes.py 
from mimetypes import * 
add_type('application/x-rar-compressed', 'rar', False) 
add_type('video/mp4', 'mp4', False) 
add_type('video/x-ms-wmv', 'wmv', False) 
add_type('video/x-flv', 'flv', False) 

这里的问题是,它尝试导入本身,而不是“真实” mimetypes模块。

我知道这是unpythonic和不好的做法,但我不认为它会真的打破任何东西。

回答

6

不要打电话给你的模块mimetypes

就是这样。称它为别的东西,它就可以工作。也许extra_mimetypes什么的。然后你的软件只需要import extra_mimetypes,你的父亲找到一个叫做Bob的兄弟。

与它唯一unpythonic东西是from mimetypes import *。将其更改为from mimetypes import add_type。这是因为你根本不需要扩展mimetypes。 add_type()调用将您的新类型添加到mimetypes注册表中,不需要扩展名。

而且通常情况下,您不需要扩展任何模块。如果您想添加模块中不存在的额外功能,可以在第二个模块中使用这些额外功能。扩展像你想要做的模块几乎是不必要的。