py plistlib
来源:互联网 发布:淘宝卧室门帘 编辑:程序博客网 时间:2024/04/30 07:36
plistlib提供一系列对.plist文件操作的函数
读取.plist
#!/usr/bin/env python#coding=utf-8#reading_plist_files.pyimport plistlibimport osimport glob#设置一个根目录calendar_root = os.path.expanduser('~/Library/Calendars')#返回~/Library/Calendars/*.caldav/*.calendar和~/Library/Calendars/*.calendar匹配的所有路径calendar_directories = ( #搜索 ~/Library/Calendars/*.caldav/*.calendar glob.glob(os.path.join(calendar_root, '*.caldav', '*.calendar')) + #搜索 ~/Library/Calendars/*.calendar glob.glob(os.path.join(calendar_root, '*.calendar')) )#遍历得到的路径for dirname in calendar_directories: #拼接一个新路径,目的是找到Info.plist文件 info_filename = os.path.join(dirname, 'Info.plist') #该文件是否存在 if os.path.isfile(info_filename): #利用plistlib.readPlist函数读区Info.plist文件 info = plistlib.readPlist(info_filename) #获取Info.plist中键为Checked的值,是否存在 if info.get('Checked'): print info['Title']
写.plist
#!/usr/bin/env python#coding=utf-8#writing_plist_files.pyimport plistlibimport datetimeimport tempfileimport os#如果你的应用程序需要一个临时文件来存储数据,但不需要同其他程序共享,#那么用TemporaryFile函数创建临时文件是最好的选择。其他的应用程序是无法找到或打开这个文件的,#因为它并没有引用文件系统表。用这个函数创建的临时文件,关闭后会自动删除。import tempfiled = { 'an_int':2, 'a_bool':False, 'the_float':5.9, 'simple_string':'This string has no special characters.', 'xml_string':'<element attr="value">This string includes XML markup </element>', 'nested_list':['a', 'b', 'c'], 'nested_dict':{ 'key':'value' }, 'timestamp':datetime.datetime.now(), }#如果临时文件会被多个进程或主机使用,那么建立一个有名字的文件是最简单的方法。#这就是NamedTemporaryFile要做的,可以使用name属性访问它的名字output_file = tempfile.NamedTemporaryFile()try: plistlib.writePlist(d, output_file) output_file.seek(0) print output_file.read() print output_file.namefinally: #单引号和双引号的区别,单引号'Let/'s go' print "close" output_file.close()print 'Exists after close:', os.path.exists(output_file.name)
读写二进制的.plist
#!/usr/bin/env python#coding=utf-8#binary_property_data.pyimport plistlibd = { 'binary_data':plistlib.Data('somestring you plistl Data file. \0'),}print plistlib.writePlistToString(d)DATA = """<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"><plist version="1.0"><dict> <key>binary_data</key> <data> c29tZXN0cmluZyB5b3UgcGxpc3RsIERhdGEgZmlsZS4gAA== </data></dict></plist>"""m = plistlib.readPlistFromString(DATA)#输出'somestring you plistl Data file. \x00'print repr(m['binary_data'].data)#输出somestring you plistl Data file.print m['binary_data'].data
0 0
- py plistlib
- py
- py
- py
- py
- py
- py
- py
- Py
- bin2hex.py && hex2bin.py
- web.py (url.py)
- [py]py存放家具
- Xctf之调皮的py-py-py
- dir_size.py
- sendEmail.py
- Html.py
- web.py
- mail.py
- Android面试宝典
- 傅立叶变换的通俗入门
- java设计模式(四)---原型模式
- 第十四周项目4(3)-处理C++源代码的程序
- Android 高级Drawable资源---复合Drawable----层Drawable
- py plistlib
- [JVM]成为JavaGC专家(1)—深入浅出Java垃圾回收机制
- Mac 安装brew
- mac上连接魅族手机调试,不显示device
- Mosquito的优化——订阅树优化(八)
- PHPWord利用模板替换字符串生成精确的word文档
- PerformanceCounter
- mathtype公式字号的更改
- [Unity3D]蓝港面试题