Как заменить текст, используя 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существует, потому что я хотел заменить только один экземпляр этой строки.
Вы можете изменить / удалить в соответствии с вашими требованиями.

Другие вопросы по тегам