Как заменить текст, используя python, если файл содержит двоичный код и текст оба?
Я хочу заменить текст файла Houdini (.hip), который содержит смесь двоичного кода и текста. У меня есть код Python, который заменяет текстовый файл. Когда я пытаюсь заменить текст в файле Houdini, файл становится поврежденным после замены.
Может кто-нибудь сказать мне, как заменить текст в файле Houdini, не повреждая его?
код:
import fileinput,sys
for line in fileinput.input("file_name",inplace=True):
line = line.replace("from","to")
sys.stdout.write(line)
Когда я пытаюсь заменить файл Houdini (.hip), используя этот код, файл становится поврежденным.
Кто-нибудь знает, как заменить файл Houdini, не открывая его?
0 ответов
Недавно я столкнулся с этой проблемой и попробовал предложения, упомянутые в комментариях.
Вот окончательное решение, которое сработало для меня:
import re
def UpdateFile(self, file, oldstrg, newStr):
bytetofind = bytes(oldstrg, encoding='utf-8')
bytetoreplace = bytes(newStr, encoding='utf-8')
f = open(file, 'rb+')
text = f.read()
text = re.sub(bytetofind , bytetoreplace, text, count=1)
f.seek(0)
f.write(text)
f.close()
В count=1
существует, потому что я хотел заменить только один экземпляр этой строки.
Вы можете изменить / удалить в соответствии с вашими требованиями.