如何将最新结果写入CheckFoldersResult.txt头部 而非追加到文件末尾
实现结果文件最新内容写入开头的操作方案
现有已实现的代码逻辑:
- 访问约20台服务器,服务器配置信息存储在
CheckFolders.ini文件中- 拉取各服务器的存储容量、文件总数、文件夹总数三类信息
- 运行结果默认写入
CheckFoldersResult.txt文件
核心实现思路
操作系统没有直接在文件头部插入内容的原生接口,标准实现逻辑如下:
- 先判断结果文件是否存在,若存在则读取文件内的全部旧内容
- 将新生成的运行结果拼接在旧内容的最前面
- 把拼接后的完整内容覆盖写入原结果文件即可
常见场景代码示例
Python版本
import os # 替换为你的脚本实际生成的最新运行结果字符串 new_run_result = "2024-xx-xx 运行结果:\n服务器1:容量100G,文件数1200,文件夹数150\n..." result_file_path = "CheckFoldersResult.txt" old_content = "" if os.path.exists(result_file_path): with open(result_file_path, "r", encoding="utf-8") as f: old_content = f.read() # 新内容拼接在前 full_content = new_run_result + "\n" + old_content # 覆盖写入原文件 with open(result_file_path, "w", encoding="utf-8") as f: f.write(full_content)
Shell版本
# 替换为你实际生成的最新运行结果 NEW_RESULT="2024-xx-xx 运行结果: 服务器1:容量100G,文件数1200,文件夹数150 ..." RESULT_FILE="CheckFoldersResult.txt" # 拼接新旧内容后覆盖写入 echo -e "${NEW_RESULT}\n$(cat ${RESULT_FILE} 2>/dev/null)" > ${RESULT_FILE}
注意事项
- 如果结果文件体积超过1G,不建议用上述方法,会占用过多内存,可改为每次生成新结果写入以时间戳命名的独立文件,查询时按文件名倒序获取最新内容即可
- 写入文件时建议指定编码格式,避免跨系统运行时出现乱码问题
内容的提问来源于stack exchange,提问作者Sumit Vishnoi
相关产品推荐
相关产品推荐

