Python实现输出CSV文件名自动匹配输入文件并追加_results后缀
自动生成带后缀的CSV输出文件方案
需求背景
现有CSV文件内容如下:
cat input.csv dwelling,wall,weather,occ,height,temp 5,2,Ldn,Pen,154.7,23.4 5,4,Ldn,Pen,172.4,28.7 3,4,Ldn,Pen,183.5,21.2 3,4,Ldn,Pen,190.2,30.3
通过Pandas导入数据:
import pandas as pd input_df = pd.read_csv('input.csv')
完成数据计算后,需要自动生成与输入文件同名、追加_results.csv后缀的输出文件,无需手动修改文件名。
方法1:字符串拆分法(简单直接)
直接对输入文件名做字符串拆分拼接,适合简单文件名场景:
import pandas as pd input_file = 'input.csv' # 拆分文件名和后缀,拼接成输出文件名 output_file = f"{input_file.rsplit('.', 1)[0]}_results.csv" # 如果要放到Results文件夹,直接加路径前缀 output_file = f"Results/{input_file.rsplit('.', 1)[0]}_results.csv" # 导入数据 input_df = pd.read_csv(input_file) # 这里插入你的数据计算逻辑 # 示例:新增温度与平均值的差值列 input_df['temp_diff'] = input_df['temp'] - input_df['temp'].mean() # 导出结果,index=False避免导出多余的索引列 input_df.to_csv(output_file, index=False)
方法2:os模块处理(适配复杂路径)
如果输入文件包含路径(比如data/input.csv),用os.path模块处理更规范:
import pandas as pd import os input_file = 'input.csv' # 拆分路径、文件名和后缀 file_dir, file_name = os.path.split(input_file) name, ext = os.path.splitext(file_name) # 生成输出文件名,可保留原路径或指定到Results文件夹 # 保留原路径: output_file = os.path.join(file_dir, f"{name}_results{ext}") # 指定到Results文件夹: output_file = os.path.join("Results", f"{name}_results{ext}") # 导入数据 input_df = pd.read_csv(input_file) # 数据计算逻辑... # 导出 input_df.to_csv(output_file, index=False)
方法3:封装成函数(复用性强)
如果频繁需要这类操作,封装成函数更方便:
import pandas as pd import os def process_csv(input_file, output_dir="Results"): # 自动创建输出目录(不存在则新建) os.makedirs(output_dir, exist_ok=True) # 处理文件名 _, file_name = os.path.split(input_file) name, ext = os.path.splitext(file_name) output_file = os.path.join(output_dir, f"{name}_results{ext}") # 导入数据 df = pd.read_csv(input_file) # 这里写你的数据计算逻辑 # 示例:计算身高的最小值列 df['height_min'] = df['height'].min() # 导出结果 df.to_csv(output_file, index=False) return output_file # 调用函数处理文件 process_csv('input.csv')
内容的提问来源于stack exchange,提问作者Loz
相关产品推荐
相关产品推荐

