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
分享到:
相关推荐
知乎x-zse-96 文件头 JS解密
它利用 `pandas` 处理 csv 文件,`click` 以获取 CLI。 ## 用法 该脚本通过查询(GET 请求)返回客户端 IP 的测试网站来测试代理。 如果返回的 IP 与代理的 IP 匹配,我们认为代理是好的。 ### 测试单个代理 `...
一、项目名:基于PHP与python的新冠疫情大数据展示系统 二、运行方法:启动文件是china_covid-19下的index.html双击即可启动 三、资源说明: 1、本资源获取自本人所写的现有1k+阅读量的原创博客; 2、本资源已帮助了...
python抓取高德POI数据,突破数据量限制,包含了python脚本程序和相关输入文件
- Python源码文件(py):11个,实现核心的业务逻辑和权限控制 - 图片文件(jpg):7个,提供高质量的视觉内容 - 可缩放矢量图形文件(svg):6个,确保图标在不同分辨率下清晰显示 - Flash文件(swf):5个,...
11、获取banner信息 python sqlmap.py -u "http://192.168.1.47/page.php?id=1&cat=2" -b banner: '5.0.38-Ubuntu_0ubuntu1.1-log' 12、获取当前数据库,当前用户,所有用户,密码,所有可用数据库。 python ...
获取文件夹下所有文件列表+批量图片格式转换+Python基本文件操作
一个显着的区别是,如果在本地没有找到配置,这个 python 实现将动态地从互联网上的集中存储库中获取网站配置。 。与 FiveFilters PHP 实现的差异python-ftr : 目前只有一个解析器库 ( lxml )。 html5lib尚未移植...
config.php用到的key主要用来加密密码和配置数据的接口,python获取数据的时候要用到同样的key login.php用到的key用来和时间戳生成一个token,JavaScript拿着这个token去和python建立连接,python在校验这个token的...
有不清楚的随时可以问我。使用JavaScript编写,直接可以计算STL3D文件的体积、面积、长宽高。完整代码,谢谢。
本文分析了基于Python的新闻聚合系统网络爬虫,指的是根据Python的网络爬虫构建新闻聚合系统,利用爬 虫获取新闻聚合系统的新闻数据,不同网站的页面布局是不同的,因此需要创建开源爬虫,可以在不同页面布局中获取数据。...
用于枚举并尝试从LFI漏洞获取代码执行的python脚本 用法:lfi-fuzz.py [选项] 选项:-h,--help显示此帮助消息并退出-u URL,--url = URL您要测试的URL: : page LFI --traversal -file = TRAVERSAL_FILE...
IntelliJ IDEA .env文件支持插件 插件网址: : 主要特点 .env文件支持PhpStorm,RubyMine和PyCharm。 docker-compose.yml和Dockerfile环境变量获取 转到声明并查找环境变量的用法 赞助商 消除上下文切换和昂贵...
此过程解析 Quake3 专用服务器日志文件,分析条目并将它们写入数据库。 它是用 Python2.7 编写和测试的 Frontend 是一个完全编写的 Webfrontend,用于以漂亮的形式获取数据库内容。 有关详细信息,请阅读前端目录...
PyPhpOn 将(一些)不错的 Python 功能移植到 PHP。入门您可以使用安装此库。 要通过 Composer 安装它,只需在 composer.json 文件的 require 块中写入以下文本: { " require " : { " litipk/pyphpon " : " 0.3 " }...
1.项目基于网络获取的各种银行卡数据集,调用OpenCV库函数进行处理,实现常规银行卡号的识别输出、信息查询与批量管理。 2.项目运行环境:包括Python环境、TensorFlow环境和OpenCV环境。 3.项目包括4个模块:训练集...
提取“ train_posf”和“ train_negf”文件运行“ haar_features.py”以提取正面和负面面部图像中每个图像的所有可能的haar特征值运行“ threshold_optimization.py”以获取每个弱分类器(haar feature)的优化阈值...
这是一个文件擦除程序,可以远程获取命令并在紧急情况下采取行动。 程序名称的灵感来自钢铁侠 3 电影,其中托尼斯塔克在他的房子被摧毁时激活了“家庭聚会协议”。 它是为防止您的私人数据被警察或小偷窃取而编写的...
ios-空中分发用于通过无线分发文件生成静态 ios 的 Python 脚本。 还有一个简单的只读 PHP 仪表板,用于查看这些文件。 Apple 需要 HTTPS(受信任的 ssl,非自签名)来无线安装 IPA。 你会需要它!仪表盘仪表板示例...
phpvuln是用Python 3编写的开放源代码OWASP渗透测试工具,它可以加快在PHP代码中查找常见PHP漏洞的过程,例如命令注入,本地/远程文件包含和SQL注入。 截屏 安装 您可以通过克隆Git存储库来下载phpvuln: git ...