首先,我尝试了这些问题但并不适合我:
我正在以二进制方式操作pdf文件。我需要用其他字符串替换字符串。
这是我的方法:
#!/usr/bin/python3
# -*- coding: UTF-8 -*-
with open("proof.pdf", "rb") as input_file:
content = input_file.read()
if b"21.8182 686.182 261.818 770.182" in content:
print("FOUND!!")
content.replace(b"21.8182 686.182 261.818 770.182", b"1.1 1.1 1.1 1.1")
if b"1.1 1.1 1.1 1.1" in content:
print("REPLACED!!")
with open("proof_output.pdf", "wb") as output_file:
output_file.write(content)
当我运行脚本时,它会显示" FOUND !!",但不会"更换!!"
答案 0 :(得分:2)
这是因为python string replace
中的sub
和re
不执行就地替换。在这两种情况下,你都会得到另一个字符串。
替换: -
content.replace(b"21.8182 686.182 261.818 770.182", b"1.1 1.1 1.1 1.1")
与
content = content.replace(b"21.8182 686.182 261.818 770.182", b"1.1 1.1 1.1 1.1")
这应该有用。