import os
import sys
from UserDict import UserDict
def stripnulls(data):
"strip whitespace and nulls"
return data.replace("\00", " ").strip()
class FileInfo(UserDict):
"store file metadata"
def __init__(self, filename=None):
UserDict.__init__(self)
self["name"] = filename
class MP3FileInfo(FileInfo):
"store ID3v1.0 MP3 tags"
tagDataMap = {"title" : ( 3, 33, stripnulls),
"artist" : ( 33, 63, stripnulls),
"album" : ( 63, 93, stripnulls),
"year" : ( 93, 97, stripnulls),
"comment" : ( 97, 126, stripnulls),
"genre" : (127, 128, ord)}
def __parse(self, filename):
"parse ID3v1.0 tags from MP3 file"
self.clear()
try:
fsock = open(filename, "rb", 0)
try:
fsock.seek(-128, 2)
tagdata = fsock.read(128)
finally:
fsock.close()
if tagdata[:3] == 'TAG':
for tag, (start, end, parseFunc) in self.tagDataMap.items():
self[tag] = parseFunc(tagdata[start:end])
except IOError:
pass
def __setitem__(self, key, item):
if key == "name" and item:
self.__parse(item)
FileInfo.__setitem__(self, key, item)
def listDirectory(directory, fileExtList):
"get list of file info objects for files of particular extensions"
fileList = [os.path.normcase(f) for f in os.listdir(directory)]
fileList = [os.path.join(directory, f) for f in fileList \
if os.path.splitext(f)[1] in fileExtList]
def getFileInfoClass(filename, module=sys.modules[FileInfo.__module__]):
"get file info class from filename extension"
subclass = "%sFileInfo" % os.path.splitext(filename)[1].upper()[1:]
return hasattr(module, subclass) and getattr(module, subclass) or FileInfo
return [getFileInfoClass(f)(f) for f in fileList]
if __name__ == "__main__":
for info in listDirectory("/music/_singles/", [".mp3"]):
print "\n".join(["%s=%s" % (k, v) for k, v in info.items()])
print
分享到:
相关推荐
2. **下载文件**:获取COS中的对象并将其保存到本地,也可以实现断点续传功能,确保大文件下载的可靠性。 3. **管理存储桶**:创建、删除、列举存储桶,以及设置存储桶的权限和生命周期规则。 4. **对象操作**:包括...
在实际操作中,首先需要安装必要的Python环境和依赖库,然后配置seleiunm的设置文件,包括账号信息、文案内容、发布计划等。运行程序后,工具会按照设定执行自动发布任务。为了保证账号的安全,建议遵循百家号的使用...
`wikiapi` 是一个专门用于与维基百科等MediaWiki API交互的Python库,它简化了从这些在线百科全书获取数据的过程。这个库的版本为2.0.8,表明它是经过多次迭代和优化后的稳定版本,兼容Python 2和Python 3,这从...
本文将详细讲解`pywikiapi`库的特性、用途以及安装方法,帮助开发者更好地利用这个库进行信息获取和处理。 `pywikiapi`是Python的一个第三方库,它为开发者提供了一个简单且直观的接口,可以直接与维基媒体基金会...
由于我们已经有一个名为“mwoauth-0.3.6-py3-none-any.whl”的压缩包文件,我们可以直接通过pip进行安装,无需从PyPI(Python Package Index)下载。只需在命令行中输入以下命令: ```bash pip install mwoauth-...
“文件头”通常指的是文件的起始部分,它包含了关于文件类型、格式、编码等信息。在JS(JavaScript)文件中,文件头可能包含执行脚本的元数据或特定的加密指示。在解密过程中,识别和解析这些文件头是至关重要的步骤...
安装`blackfire`库非常简单,你可以通过Python的包管理器`pip`来安装这个whl文件。首先,确保你的Python环境是3.7版本,并且是64位的Windows系统。然后,在命令行中输入以下命令: ```bash pip install path\to\...
在安装CodeIntel-2.0.0b26-cp35-cp35m-manylinux1_x86_64.whl文件时,需确保你已拥有Python 3.5环境。可以通过Python的`pip`包管理器来安装此whl文件: ```bash pip install /path/to/CodeIntel-2.0.0b26-cp35-cp35m...
1、安装模块:pip install phone 2、执行方法:python find.py 电话号码文件
描述中提到的是这个工具的特性,即它是一个在线工具,这意味着用户无需下载和安装任何软件,只需要在浏览器中访问该服务的网址,就可以上传PHP文件并获取格式化的Python风格的PHP代码。这种便捷性使得它对于开发者来...
2. **File对象**: 当用户选择文件后,`<input type="file">`会产生一个或多个File对象,这些对象包含了文件的相关信息,如文件名、大小、类型等。例如,我们可以通过`event.target.files`获取到用户选择的文件列表。...
- 使用相对路径或安全的绝对路径来执行Python脚本,避免访问到敏感文件。 - 考虑使用权限控制,限制PHP和Python的执行环境。 六、性能考虑 频繁的PHP与Python交互可能影响性能。如果需要高性能,考虑使用其他方式...
无论选择哪种方式,获取文件流后,我们都可以进行进一步的操作,如保存到磁盘、存储到云服务、进行文件格式转换,或者进行内容检测等。确保正确处理文件流不仅可以提高程序的效率,还能有效防止内存问题,确保系统的...
在这个项目中,PHP可能被用作后端处理,与Python前端进行数据交互,处理用户请求,例如接收来自Python脚本的答题信息,以及发送回服务器的响应。 冲顶大会是一款流行的在线知识竞赛应用,用户需要在有限的时间内...
根据笔记的URL获取所有的评论后并生成CSV文件,常规版,未用异步的方式,只需要替换自己的cookie既可。评论内容包含以下内容:笔记链接页码评论者昵称评论者ID评论者主页链接评论时间评论IP属地评论点赞数评论级别...
【Python-pricemonitorphp京东价格监控提醒用户抢购】是一个项目,旨在帮助用户自动监控京东商城的商品价格,当商品价格达到用户设定的预期值时,系统会通过邮件通知用户,以便用户及时抢购。该项目结合了Python和...
这段PHP代码首先检查是否有名为`myFile`的上传文件,然后获取文件名、类型等信息,你可以根据实际需求扩展这部分代码,比如将文件保存到服务器某个目录,或执行其他验证和处理操作。 总结来说,Python中上传文件和...
在Python编程领域,网络爬虫是一项重要的技能,用于自动化地获取网页信息。在这个主题中,我们将探讨如何使用Python来抓取百度云分享的数据,特别是利用百度云最新的API接口。这通常涉及到请求、解析HTML或JSON响应...