如何在Python中有效替换巨大的ASCII一半二进制文件中的行

时间:2019-06-12 14:56:36

标签: python file replace binary ascii

我需要更改一个巨大的.ply二进制文件(点云格式)的ascii标头中的一行[请参见:http://paulbourke.net/dataformats/ply/]。我不需要更改其他任何内容。

我正在使用python 3.7

我已经通过某种解决方案替换了文本文件[How to search and replace text in a file using Python?,但是Jack Aidley解决方案和jfs解决方案都不符合我的需求。加载和重写整个文件的第一个方法是,在我的情况下,这是需要避免的。文件的二进制部分无法使用第二个。

我需要从那开始:

ply
***rest of the header****
property list int int vertex_indices
end_header
^Q(^LI<99><A7> ***rest of the huge binary parts***

对此:

ply
***rest of the header****
property list uchar int vertex_indices
end_header
^Q(^LI<99><A7> ***rest of the huge binary parts***

1 个答案:

答案 0 :(得分:0)

有机会sed完成任务:

sed -e '0,/property list int int vertex_indices/ s/property list int int vertex_indices/property list uchar int vertex_indices/' file

我已经常规地替换了二进制文件(例如Windows .EXE文件)中的字符串,没有问题。