я хочу заменить Юникод символ в файл с питономпитон юникода заменить MemoryError
это мой код:
with codecs.open('/etc/bluetooth/main.conf', "r", "utf8") as fi:
mainconf=fi.read()
forrep = ''.decode('utf8')
for line in mainconf.splitlines():
if('Name = ' in line):
forrep = line.split('=')[1]
print 'name',type(name)
print 'mainconf',type(mainconf)
print 'forrep',type(forrep)
mainconf = mainconf.replace(forrep, name)
#mainconf = mainconf.replace(forrep.decode('utf8'),' '+name)
with codecs.open('/etc/bluetooth/main.conf','w',"utf8") as fi:
fi.write(mainconf)
но питон всегда получает меня ошибку MemoryError
...
это:
name <type 'unicode'>
mainconf <type 'unicode'>
forrep <type 'unicode'>
Traceback (most recent call last):
File "WORK/Bluetooth/Bluetooth.py", line 359, in <module>
if __name__ == '__main__':main()
File "WORK/Bluetooth/Bluetooth.py", line 336, in main
BLMan.SetAllHCIName(common.cfg.get('BLUETOOTH', 'HCI_DEVICE_NAME'))
File "WORK/Bluetooth/Bluetooth.py", line 194, in SetAllHCIName
mainconf = mainconf.replace(forrep, name)
MemoryError
открыть файл для чтения и записи режим в первой строке и записать это. – Janom
Насколько велик 'main.conf'? На какой платформе вы работаете? – abarnert
В качестве примечания: Что такое 'forrep = '.decode (' utf8 ')' for? Все, что вам нужно сделать, это создать пустую строку unicode 'u''', которая (а) вы могли бы просто написать как литерал, и (б) вы нигде не используете. Я немного обеспокоен тем, что вы ожидаете, что «декодирование» каким-то образом запомнится и автоматически будет повторно применено в любое время, когда вы сохраните что-нибудь под именем 'forrep' позже или что-то, чего не будет. – abarnert