求助修正代码:将pickle关联的txt文件存入对应同名文件夹
修正后的代码实现
问题核心是提取txt文件名中的共同前缀(即对应pickle文件的名称),比如A-1.txt和A-2.txt的前缀为A,需将它们与A.pkl共同存入A文件夹。
修正步骤
- 遍历所有txt文件,以
-为分隔符截取文件名前缀 - 仅当目标文件夹不存在时创建文件夹
- 将当前txt文件移动到对应前缀的文件夹
- 遍历所有pickle文件,将其移动到与自身同名的文件夹(确保该文件夹已由对应txt文件创建)
修正代码
from pathlib import Path from shutil import move path_to_files = Path(r"/home/abc/Desktop/qwerty/op") # 处理所有txt文件 for txt_path in path_to_files.glob("*.txt"): # 提取前缀(例:A-1.txt -> A) folder_name = txt_path.stem.split("-")[0] dir_path = path_to_files / folder_name if not dir_path.exists(): dir_path.mkdir() move(txt_path, dir_path / txt_path.name) # 处理对应的pickle文件 for pkl_path in path_to_files.glob("*.pkl"): folder_name = pkl_path.stem dir_path = path_to_files / folder_name if dir_path.exists(): move(pkl_path, dir_path / pkl_path.name)
关键说明
- 用
split("-")[0]精准匹配txt文件对应的pickle前缀,避免为每个txt单独建文件夹 - 增加文件夹存在判断,防止重复创建引发异常
- 补充pickle文件的移动逻辑,确保同组文件全部归位
内容的提问来源于stack exchange,提问作者Cosmo
相关产品推荐
相关产品推荐

