import os async def edit_file( file_path: str, old_content: str, new_content: str, ) -> str: """通过查找替换的方式编辑文件内容。 Args: file_path: 文件的路径 old_content: 要被替换的原始内容片段 new_content: 替换后的新内容 Returns: 操作结果描述 """ from kilostar.utils.sandbox import validate_path, PathViolation try: file_path = validate_path(file_path, write=True) except PathViolation as e: return f"[Sandbox] {e}" try: if not os.path.exists(file_path): return f"[Error] 文件不存在: {file_path}" with open(file_path, "r", encoding="utf-8") as f: content = f.read() if old_content not in content: return f"[Error] 未在文件中找到要替换的内容片段" new_file_content = content.replace(old_content, new_content, 1) with open(file_path, "w", encoding="utf-8") as f: f.write(new_file_content) return f"已成功编辑文件: {file_path}" except Exception as e: return f"[Error] 编辑文件失败: {e}"