批量将动态命名的.txt文件转换为同名.csv文件求助
批量将指定格式的.txt文件转换为.csv文件
解决方案
要实现批量转换,你可以借助glob模块匹配目标文件夹下的所有符合命名格式的.txt文件,再通过循环逐个处理:
- 导入依赖库:除了
pandas,还需要glob来批量匹配文件路径 - 匹配目标文件:用
glob.glob()获取所有符合格式的.txt文件路径 - 循环处理每个文件:读取文件、生成对应.csv文件名、保存文件
完整代码
import pandas as pd import glob # 目标文件夹路径,替换成你的实际路径 folder_path = "/var/opt/" # 匹配所有符合"日期-内容.txt"格式的文件,也可以用更精准的匹配规则如"[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]-*.txt" txt_files = glob.glob(f"{folder_path}*.txt") for file_path in txt_files: # 读取txt文件,保持原有的分隔符设置 df = pd.read_csv(file_path, delim_whitespace=True) # 生成对应的csv文件名:替换.txt后缀为.csv csv_file_path = file_path.replace(".txt", ".csv") # 保存为csv文件,不保留索引 df.to_csv(csv_file_path, index=None)
关键说明
glob.glob(f"{folder_path}*.txt"):会获取目标文件夹下所有.txt文件,如果你只想匹配开头为日期格式的文件,可以把匹配规则改成f"{folder_path}[0-9][0-9]-[0-9][0-9]-[0-9][0-9][0-9][0-9]-*.txt",这样只会处理类似"01-09-2022-something.txt"的文件file_path.replace(".txt", ".csv"):简单直接地将文件名后缀替换为.csv,确保生成的csv文件和原txt文件同名同路径- 循环遍历每个文件:自动处理所有匹配到的文件,无需手动逐个指定文件名
内容的提问来源于stack exchange,提问作者Siddharth Jain
相关产品推荐
相关产品推荐

