我有100多个omnigraffle
的保存文件,需要编写一个脚本来阅读然后更改其内容。
示例一:
https://www.dropbox.com/s/97cec5err3qubgq/test.graffle?dl=0
我可以通过TextMate
打开它,文件的内容是xml格式
<?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>ActiveLayerIndex</key>
<integer>0</integer>
<key>ApplicationVersion</key>
<array>
<string>com.omnigroup.OmniGraffle6</string>
<string>163.7.0.243167</string>
</array>
<key>AutoAdjust</key>
<true/>
<key>BackgroundGraphic</key>
<dict>...
所以我编写代码来用Python读取和写入该文件
contents = open(filename).read()
print contents
结果是
?]Ys?8~N~?֯IxgO?Gbg}?%?;)Wm?$sB
4???=?z?;F.??l??h?O????q??ش7~?z???ݓ???{??s#?8=?><?il4??Nx?????6N??o???;?hl?0?o????[XP???VF?Ӑ$d????&?????&i=????????o6??ǭN??w???????Ͷ?+/t}FF$?????
?yװ5???aWT??pT?ۥ??v??r???O??Û?u٣GR?)?I!o?~MK??|7??)[)c?'2;|@g#1?J/?!??Jo?X;ؿ??I??t%L?2Jy&?]?;)ЧC^?D????ܑ_`
????{?l?????h????]?7.?y?]7 ?&?
那么我们如何在Python / PHP中读取该文件?
答案 0 :(得分:4)
您提供的链接中的文件将使用gzip
进行压缩,无论是在存储时,还是在下载以保存空间时通过dropbox进行压缩。
在使用之前在文件上运行gunzip
命令,或使用python gzip模块:
import gzip
with gzip.open(filename) as f:
contents = f.read()