0

我想替换包含二进制代码和文本混合的 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文件的情况下替换它?

4

1 回答 1

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是因为我只想替换该字符串的一个实例。
您可以根据需要更改/删除。

于 2020-06-12T05:27:57.773 回答