gpt4 book ai didi

python - 通过控制台操作从目录中的所有文件名中删除几个字符串

转载 作者:太空宇宙 更新时间:2023-11-04 08:27:37 25 4
gpt4 key购买 nike

我想知道重命名目录中所有文件的最简单方法是什么。

我有这样的文件名:

output_original_2018_0729_112557_065.JPG_7c82d91a-6a2a-4f9f-a9ed-ccbc34afe7a9.JPG
output_original_2018_0729_112557_065.JPG_15f07152-76d0-4834-993b-2ca8f589310f.JPG
output_original_2018_0729_112631_070.JPG_cd08da59-0de7-4a94-b769-5450fb80e982.JPG

现在我想删除前导和结尾部分,如果文件名相同,还用计数器(第一、第二、第三)重命名文件本身。这导致了这样的结果:

2018_0729_112557_065_1.JPG
2018_0729_112557_065_2.JPG
2018_0729_112631_070.JPG

提前致谢

编辑:我尝试用正则表达式截断第一部分:

for file in *; do echo mv ./"$file" ./"$(echo "$file" | cut -c17-)";

最佳答案

这应该会产生您想要的准确输出:

import os
import re
from collections import defaultdict


folder = "/path/to/out_original/folder"
regex = "output_original_(.+?.JPG)"

p = defaultdict(list)

for x in os.listdir(folder):
try:
p[re.findall(regex, x)[0]].append(x)
except:
pass

for k, v in p.items():
if len(v) == 1:
os.rename(os.path.join(folder, v[0]), os.path.join(folder, k))
else:
count = 1
for x in v:
os.rename(
os.path.join(folder, x),
os.path.join(folder, os.path.splitext(k)[0] + "_{}.JPG".format(count))
)
count += 1

关于python - 通过控制台操作从目录中的所有文件名中删除几个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55666202/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com