如何在Python函数内使用patch命令修改XML文件?
解决Python中subprocess调用patch命令失败的问题
你的问题出在subprocess.run的参数格式上——命令行里用空格分隔的每个部分,必须拆成列表里的独立元素,不能把多个参数揉进同一个字符串里。
命令行里的patch export.xml patch.txt对应到subprocess的正确写法是:
import subprocess # 每个命令/参数单独作为列表项 subprocess.run(["patch", "export.xml", "patch.txt"])
如果需要确认命令执行状态、捕获输出,可以扩展写法:
import subprocess result = subprocess.run( ["patch", "export.xml", "patch.txt"], capture_output=True, text=True ) # 检查执行结果 if result.returncode == 0: print("patch文件已成功应用到export.xml") else: print(f"应用patch失败,错误提示:\n{result.stderr}")
另外,如果系统找不到patch命令,需要写命令的完整路径(比如["/usr/bin/patch", "export.xml", "patch.txt"],具体路径可以在命令行用which patch查询)。
内容的提问来源于stack exchange,提问作者Eloise
相关产品推荐
相关产品推荐

