我想替换包含二进制代码和文本混合的Houdini文件(.hip)的文本。我有python代码替换文本文件。当我尝试替换Houdini文件中的Text时,文件在替换后会变为Corrupt。
任何人都可以告诉我如何替换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 :(得分: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
在那里是因为我只想替换该字符串的单个实例。
您可以根据需要进行更改/删除。