当前位置: 首页 > wzjs >正文

新科网站建设做创新方法工作的网站

新科网站建设,做创新方法工作的网站,免费网址生成app,wordpress仿腾讯Python练习:读取Apple Plist文件 Plist文件简介 ​​定义​​:Apple公司创建的基于XML结构的文件格式​​特点​​:采用XML语法组织数据,可存储键值对、数组等结构化信息文件扩展名​​:.plist应用场景: ​​iOS系统:​…

Python练习:读取Apple Plist文件

Plist文件简介

  1. ​​定义​​:Apple公司创建的基于XML结构的文件格式
  2. ​​特点​​:采用XML语法组织数据,可存储键值对、数组等结构化信息
  3. 文件扩展名​​:.plist
  4. 应用场景:
    ​​iOS系统:​​ 应用描述文件(权限配置:蓝牙/网络访问/GameCenter等)IPA安装包中的配置信息 ​​
    macOS系统​​: .app应用的配置文件 系统偏好设置存储 ​​
    苹果生态​​ iTunes音乐播放列表 Xcode项目配置

Python操作库:plistlib

import plistlib

代码适配指南(Python 2 → Python 3)
​​废弃方法​​(Python 2旧版)

plist = plistlib.read(filename)

​​正确方法​​(Python 3新版)

with open(filename, 'rb') as plist_file:plist = plistlib.load(plist_file)

注意事项

  1. 始终使用​​二进制模式​​(‘rb’)打开文件 Python
  2. 3.4+ 支持load()/dump()替代旧版API
  3. macOS内置plutil工具可验证文件有效性:bash 下运行下面的代码
    plutil -lint Example.plist

下文是练习代码,其中也包含了画图部分
练习代码:

import re, argparse
import sys
from matplotlib import pyplot
import plistlib
import numpy as np# 找到重复的音乐
def find_duplicates(file_name):print("Find duplicate tracks in %s..." % file_name)with open(file_name, 'rb') as f:plist = plistlib.load(f)# 读取playlist# 获取音轨目录tracks = plist['Tracks']# 创建音轨字典track_names = {}# 结构:{name:(duration,count)}# 遍历 添加for track_id, track in tracks.items():try:name = track['name']duration = track['Total Time']# 检查是不是以及在在字典里面了if name in track_names:# 匹配 歌曲名称和时长if duration // 1000 == track_names['name'][0] // 1000:count = track_names[name][1]track_names[name] = (duration, count + 1)else:# 不匹配的情况下track_names[name] = (duration, count)except:# ignorepass# 保存重复的音轨, name, countdups = []for k, v in track_names.items():if v[1] > 1:dups.append(k, v[1])# 保存到一个文件if len(dups) > 0:print("发现一共有%d个重复的文件, 以及保存到了dup.txt中" % len(dups))else:print("没有发现任何重复的文件")f = open("dups.txt", "w")for val in dups:f.writable("[%d] %s \n" % (val[0], val[1]))f.close()# 查找多个播放列表中的共同的音轨
def find_common_tracks(file_names):# a list of sets of track namestrack_name_sets = []# 遍历读取多个plist文件for file_name in file_names:track_names = set()with open(file_name, 'rb') as f:plist = plistlib.load(f)# 获取音轨节点tracks = plist.get("Tracks", {})# 遍历迭代for track_id, track in tracks.items():try:track_names.add(track['Name'])except:# ignorepass# 添加到track_name_sets中track_name_sets.append(track_names)# 交集处理common_tracks = set.intersection(*track_name_sets)# 写文件if len(common_tracks) > 0:f = open("common.txt", "w")for val in common_tracks:# s = "%s\n" % valf.write(f"{val}\n")f.close()print(f"Track names wirte to common.txt { len(common_tracks)}")else:print("No common tracks!")# 收集歌曲评分和时长
def plot_stats(file_name):# 读取播放列表with open(file_name, 'rb') as f:plist = plistlib.load(f)tracks = plist['Tracks']# 创建音轨排序和时长ratings = []durations = []for track_id, track in tracks.items():try:ratings.append(track['Album Rating'])durations.append(track['Total Time'])except:# ignorepass# 确保是有效数据if ratings == [] or durations == []:print(f"在文件中%s没有有效的Album Rating/Total Time  数据 {file_name}")return# scatter plot x= np.array(durations, np.int32) # convert to minutes x = x/60000.0 y = np.array(ratings, np.int32) pyplot.subplot(2, 1, 1) pyplot.plot(x, y, 'o') pyplot.axis([0, 1.05*np.max(x), -1, 110]) pyplot.xlabel('Track duration') pyplot.ylabel('Track rating') # plot histogram pyplot.subplot(2, 1, 2) pyplot.hist(x, bins=20) pyplot.xlabel('Track duration') pyplot.ylabel('Count') # show plot pyplot.show() def main():# create parserdescStr = """This program analyzes playlist files (.xml) exported from iTunes."""parser = argparse.ArgumentParser(description=descStr)# add a mutually exclusive group of argumentsgroup = parser.add_mutually_exclusive_group()# add expected argumentsgroup.add_argument('--common', nargs = '*', dest='plFiles', required=False)group.add_argument('--stats', dest='plFile', required=False)group.add_argument('--dup', dest='plFileD', required=False)# parse argsargs = parser.parse_args()if args.plFiles:# find common tracksfind_common_tracks(args.plFiles)elif args.plFile:# plot statsplot_stats(args.plFile)elif args.plFileD:# find duplicate tracksfind_duplicates(args.plFileD)else:print("These are not the tracks you are looking for.")if __name__ == "__main__":main()

最后这个是画图的部分,以后有兴趣再研究吧
在这里插入图片描述


文章转载自:

http://1Io729F6.tbjtm.cn
http://2qI7TICR.tbjtm.cn
http://sNvzBMMo.tbjtm.cn
http://va0cNpwt.tbjtm.cn
http://bjH2Dhfq.tbjtm.cn
http://zbCATbVD.tbjtm.cn
http://XCKh13rN.tbjtm.cn
http://LhaVOelA.tbjtm.cn
http://laDIPn16.tbjtm.cn
http://eEcYfgX3.tbjtm.cn
http://ZaJLSZai.tbjtm.cn
http://mVgsYVDE.tbjtm.cn
http://YCtCcQxF.tbjtm.cn
http://lrJHKrpE.tbjtm.cn
http://9iBVsgJW.tbjtm.cn
http://otdl4X2r.tbjtm.cn
http://pHBX6JPF.tbjtm.cn
http://5Ce71nqm.tbjtm.cn
http://DvyeAvJe.tbjtm.cn
http://NVcGKabB.tbjtm.cn
http://jrp1W6UJ.tbjtm.cn
http://Ox0fTHrm.tbjtm.cn
http://IRiFdNyQ.tbjtm.cn
http://lLXXUucc.tbjtm.cn
http://pNURAtCB.tbjtm.cn
http://UK92I66Y.tbjtm.cn
http://M0gsnK21.tbjtm.cn
http://VLPtuNOs.tbjtm.cn
http://ONzD98rK.tbjtm.cn
http://hkFe9ng8.tbjtm.cn
http://www.dtcms.com/wzjs/640275.html

相关文章:

  • 搜索网站不显示图片设计一个企业官网的栏目
  • 广东高端网站设计公司价格网站建设氺首选金手指14
  • 深圳做营销网站建设做网站必需要在工商局备案吗
  • 定制化网站建设网站服务器在哪租
  • 网站同步到新浪微博怎么做企业网站建设可以分为哪些层次
  • 洛阳建设工程网站做网站什么空间好
  • 易语言做网站登陆logo免费自动生成器
  • 欧美网站特点seo就业
  • 欧美 手机网站模板下载 迅雷下载 迅雷下载 迅雷下载地址关键词seo服务
  • 百度 站长工具室内设计公司及效果图
  • 万万州州微微网站网站建建设设点开文字进入网站是怎么做的
  • 网站建设哪个比较好影视公司网站模板
  • 中国住房和城乡建设部查询网站6重重庆建设工程信息网官网
  • 免费做会计试题网站全国公共资源交易中心
  • 大连的网站制作公司个人网站设计论文题目
  • 如何建设机关用房管理系统网站内容营销的定义
  • 河北省建设厅正规网站如何做网站导航
  • 东莞网站开发培训哪里有龙华网站建设营销推广
  • 电子商务网站栏目传奇手游996盒子下载
  • 贵阳网站开发哪家好科技与应用
  • 佛山网站建设及推广服务公司外贸圈是什么
  • 北京网站开发公司大全山西常见网站建设推荐优化
  • 深圳官方网站六安网站建设企业
  • 在线教育网站开发找人搭建网站多少钱
  • 网站建设项目中标通知c++网站开发
  • 苏州城乡建设局的网站产品推广广告
  • 网站平台报价模板下载家装效果图设计网站
  • 网站开发使用什么工具网站关键词写在哪里
  • 如何制作自己的网站在里面卖东西江苏建设一体化平台网站
  • 百度网站推广优化工具做网站大型