在Python中查找文本后添加行

0 投票
2 回答
1415 浏览
提问于 2025-04-16 02:32

我需要读取一个plist文件,然后搜索一个字符串,接着在下一行添加一段新文本。我觉得这应该不难。不过这个plist文件是二进制格式的,所以我不太确定该怎么处理。

提前谢谢你,

Aaron

#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')

2 个回答

0

使用 plistlib 来处理所有的plist文件,不需要进行任何转换。

2

你想先把它转换成xml格式:

plutil -convert xml file.plist

然后剩下的部分应该就比较简单了。

编辑:

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()

编辑2:

# convert plist from binary to xml

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

# convert plist from xml to binary

撰写回答