Найти текст, затем добавить строку после в Python - PullRequest
0 голосов
/ 09 августа 2010

Мне нужно прочитать файл 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 ]

2 голосов
/ 09 августа 2010

Вы хотите сначала преобразовать его в формат xml:

plutil -convert xml file.plist

Тогда все остальное должно быть довольно легко.

EDIT:

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:

# convert plist from binary to xml

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

# convert plist from xml to binary
0 голосов
/ 09 августа 2010

Используйте plistlib для всех ваших потребностей файла plist.Преобразование не требуется.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...