我需要更改一个巨大的.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***
答案 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文件)中的字符串,没有问题。