每次程序运行时创建带当日日期命名的txt文件写入数据的实现方法
问题解答
不存在可以一步完成整个需求的单个内置函数,但Python标准库提供的内置方法、模块完全可以覆盖所有需求环节,不需要安装任何第三方包,各环节对应的内置能力如下:
- 遍历指定目录、识别文件:使用标准库
os模块的listdir()或walk()方法即可列出目录下所有文件,配合简单的文件名过滤规则,就能筛出所有需要整合的历史文件+当日新增文件。 - 读取、写入文件:直接使用Python内置的
open()函数即可完成文件内容的读取、整合后内容的写入操作,不需要额外依赖。 - 获取程序运行当日日期:使用标准库
datetime模块的date.today()方法即可获取当前日期,可按需格式化日期字符串,匹配你要求的文件名格式。
你可以直接参考下面的实现代码,替换对应路径配置即可使用:
import os from datetime import date # 按需修改配置项 SOURCE_DIR = "./your_source_file_dir" # 存放每日新增文件的目录路径 OUTPUT_DIR = "./your_output_dir" # 整合后文件的存放目录 DATE_FORMAT = "%Y-%m-%d" # 文件名里的日期格式,可自行调整 # 生成符合要求的带日期的输出文件名 current_date = date.today().strftime(DATE_FORMAT) output_file_name = f"AxisMonitorAverages {current_date}.txt" output_file_path = os.path.join(OUTPUT_DIR, output_file_name) merged_content = [] # 遍历源目录读取所有需要整合的文件 for file_name in os.listdir(SOURCE_DIR): # 过滤规则:只处理txt文件,跳过本次要生成的整合文件,避免重复写入 if file_name.endswith(".txt") and file_name != output_file_name: full_path = os.path.join(SOURCE_DIR, file_name) # 跳过子目录,只处理文件 if os.path.isfile(full_path): with open(full_path, "r", encoding="utf-8") as f: merged_content.append(f.read()) # 将整合后的所有内容写入新文件 with open(output_file_path, "w", encoding="utf-8") as f: # 不同文件内容之间可按需添加分隔符,这里默认用换行分隔 f.write("\n".join(merged_content))
提示:如果你的每日生成的源文件有固定命名规则,可以把代码里的文件过滤条件改得更精准,避免把目录下其他无关txt文件也读入整合。
内容的提问来源于stack exchange,提问作者Jon
相关产品推荐
相关产品推荐

