path = 'c:/NeoZQYY/docs/h5_ui/compare/ORCHESTRATION-PLAN.md' with open(path, 'rb') as f: raw = f.read() crlf = b'\r\n' in raw doc = raw.decode('utf-8').replace('\r\n', '\n') # Exact old lines from unicode_escape output above old = ( '> \u4e3b\u4ee3\u7406\u6309\u672c\u8ba1\u5212\u9010\u5355\u5143\u4e0b\u53d1\u4efb\u52a1\u7ed9\u5b50\u4ee3\u7406\u3002\n' '> \u6bcf\u4e2a\u5b50\u4ee3\u7406\u63a5\u6536\u4e00\u4e2a\u5355\u5143\u540e\uff0c\u72ec\u7acb\u5b8c\u6210\u622a\u56fe\u2192\u5bf9\u6bd4\u2192\u5ba1\u8ba1\u2192\u4fee\u6b63\u2192\u9a8c\u8bc1\u7684\u5b8c\u6574\u95ed\u73af\u3002\n' '> \u4e0d\u5b58\u5728"\u6279\u91cf\u622a\u56fe"\u6216"\u6279\u91cf\u5bf9\u6bd4"\u9636\u6bb5\u2014\u2014\u6240\u6709\u64cd\u4f5c\u5728\u5355\u5143\u5185\u95ed\u73af\u3002' ) new = ( '> \u4e3b\u4ee3\u7406\u6309\u672c\u8ba1\u5212\u9010\u5355\u5143\u8c03\u5ea6 4 \u79cd\u4e13\u804c\u5b50\u4ee3\u7406\uff08\u622a\u56fe\u2192\u5ba1\u8ba1\u2192\u4fee\u6b63\u21c6\u9a8c\u8bc1\uff09\u5b8c\u6210\u6bcf\u5c4f\u8fd8\u539f\u3002\n' '> \u6240\u6709\u64cd\u4f5c\u5728\u5355\u5143\u5185\u95ed\u73af\uff0c\u4e0d\u5b58\u5728\u8de8\u5355\u5143\u6279\u91cf\u622a\u56fe\u6216\u6279\u91cf\u5bf9\u6bd4\u9636\u6bb5\u3002' ) if old not in doc: print('ERROR: not found') else: doc2 = doc.replace(old, new, 1) if crlf: doc2 = doc2.replace('\n', '\r\n') with open(path, 'wb') as f: f.write(doc2.encode('utf-8')) print('OK')