我有一种情况,我正在工作的目录有很多文件和文件夹(类似的东西):
AAA_SUBFOLDER
AAA_FILE_1
AAA_FILE_2
BBB_SUBFOLDER
BBB_FILE_1
BBB_FILE_2
所以文件和子文件夹都以AAA
或开头BBB
(以 CCC、DDD..开头)。我想要做的是一个python 脚本,它将所有AAA
文件移动到AAA
子文件夹,并对所有具有相同名称的文件和子文件夹进行迭代,以获得如下内容:
AAA_SUBFOLDER
- AAA_FILE_1
- AAA_FILE_2
BBB_SUBFOLDER
- BBB_FILE_1
- BBB_FILE_2
...
你能帮我吗?提前致谢!
此解决方案应该适合您的要求。步骤:
python main.py -p "D:\path\to\files" -d "_"
!! 这不会重新排列内部文件夹,只会重新排列顶层。
如果您有任何问题,我很乐意提供帮助。
import os
import argparse
from pathlib import Path
def parse_args() -> tuple:
ap = argparse.ArgumentParser()
ap.add_argument("-p", "--path", default="./files", help="path to the folder that needs organizing")
ap.add_argument("-d", "--delimiter", default="_", help="delimiter of file names")
return ap.parse_args()
args = parse_args()
for filename in os.listdir(args.path):
file_path = os.path.join(args.path, filename)
if not os.path.isfile(file_path):
continue
subfolder_name = Path(filename).stem.split(args.delimiter)[0]
subfolder_path = os.path.join(args.path,subfolder_name)
os.makedirs(subfolder_path, exist_ok=True)
os.rename(file_path, os.path.join(subfolder_path, filename))
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句