首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Python中查找文本,然后在后面添加行

在Python中查找文本,然后在后面添加行
EN

Stack Overflow用户
提问于 2010-08-09 22:02:31
回答 2查看 1.4K关注 0票数 0

我需要读取一个plist文件并搜索一个字符串,然后在下一行添加新的一行文本。我无法想象做这件事会花费太多时间。然而,plist是二进制格式,所以不确定如何处理它。

提前谢谢你,

Aaron

代码语言:javascript
复制
#Convert plist to XML
os.system('plutil -convert xml1 com.apple.iChat.Jabber.plist')

AutoDiscovery = "<integer>0<integer>"

import fileinput
for line in fileinput.FileInput("com.apple.iChat.Jabber.plist",inplace=1):
   line = line.replace("<key>AutoDiscoverHostAndPort</key>",AutoDiscovery)
   print line,

#Concert plist to binary file
os.system('plutil -convert binary1 com.apple.iChat.Jabber.plist')
EN

回答 2

Stack Overflow用户

发布于 2010-08-09 22:07:33

您需要先将其转换为xml格式:

代码语言:javascript
复制
plutil -convert xml file.plist

然后剩下的应该是相当容易的。

编辑:

代码语言:javascript
复制
newFile = open('file.copy', 'w+')
for line in open('file'):
    if (line.find('string_to_find') >= 0):
        # do something with "line"
    newFile.write(line)
newFile.close()

EDIT2:

代码语言:javascript
复制
# convert plist from binary to xml

plist = plistlib.readPlist('your.plist')
plist['key'] = 0
plistlib.writePlist('your.plist')

# convert plist from xml to binary
票数 2
EN

Stack Overflow用户

发布于 2010-08-09 22:07:07

使用plistlib来满足plist文件的所有需求。不需要转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3440750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档