Python如何实现开头定义输出文件名变量后续直接引用(类似SAS宏变量功能)
实现方法
Python 中实现该需求的逻辑和 SAS 宏变量的使用逻辑完全一致,只需要提前将文件名定义为字符串变量,后续直接引用变量即可,以下是不同场景下的常用实现方案:
1. 基础字符串变量定义(适合简单脚本场景)
直接在程序开头统一定义所有输入、输出文件的名称常量,后续代码直接引用变量即可,修改文件名时只需要调整开头的配置:
import pandas as pd # -------------------------- 开头统一配置所有文件名称 -------------------------- INPUT_DF1 = "df1.csv" OUTPUT_FINAL = "final_output.csv" # ----------------------------------------------------------------------------- # 中间业务逻辑 df1 = pd.read_csv(INPUT_DF1, low_memory=False) # 此处省略你自己的数据处理逻辑,最终得到 df_final df_final = df1 # 末尾导出直接引用预定义的变量即可 df_final.to_csv(OUTPUT_FINAL, index=False, encoding="utf-8-sig")
2. 字典统一管理(适合多输入输出文件的复杂场景)
如果涉及的文件数量较多,可以用嵌套字典统一收纳所有文件配置,结构更清晰,维护更方便:
import pandas as pd # -------------------------- 开头统一配置所有文件名称 -------------------------- FILE_CONF = { "input": { "user_data": "df1.csv", "order_data": "df2.csv", "dim_data": "dim.csv" }, "output": { "final_result": "final_output.csv", "stat_report": "monthly_stats.csv", "error_log": "err_log.txt" } } # ----------------------------------------------------------------------------- # 引用示例 df1 = pd.read_csv(FILE_CONF["input"]["user_data"]) df_final.to_csv(FILE_CONF["output"]["final_result"])
3. f-string 动态拼接(适合文件名需要动态调整的场景)
如果只需要预定义文件名主体,后缀/版本号需要动态生成,可以用 Python f-string 实现拼接:
import pandas as pd # 开头只定义文件名核心部分 OUTPUT_FILE_PREFIX = "final_output" REPORT_VERSION = "v202405" # 导出时动态拼接完整文件名 df_final.to_csv(f"{OUTPUT_FILE_PREFIX}_{REPORT_VERSION}.csv") # 最终生成的文件名为:final_output_v202405.csv
内容的提问来源于stack exchange,提问作者Martin
相关产品推荐
相关产品推荐

