如何在Windows / Linux上修改或提取多个文件/文件夹名称? [关闭]

问题描述 投票:-1回答:1

A screenshot showing multiple files whose names I want to modify.

是否可以编写一个程序来提取文件夹中的所有文件/文件夹名称并进行修改?例如,我希望这里的文件名没有"0n Eagles - "作为它们的前缀,我只想要歌曲的名称。或者,如果我想提取所有文件名并将其存储在文本文档中,该怎么办?对于这些问题,一般解决方案(如果有的话)将会提供很多帮助。

python linux windows bash batch-processing
1个回答
0
投票

我为自己的音乐收藏写了一个类似的程序。这是我的具体情况,但应适合您的用例。注释掉重命名调用并在音乐集的根目录中运行它,制作mod直到它看起来正确,然后取消注释重命名调用并再次运行。可能是一个先备份一切的想法。此脚本适用于Linux,可能需要在Windows上进行一些调整以应对驱动器名称。

更复杂的解决方案是使用os.walks()来遍历整个树。

#!/usr/bin/env python3
#
# Splits directories into Artist/Album/tracks
#
# Looks for directories with ' - ' in name
#

import os

for f in os.listdir('.'):
    if os.path.isdir(f):
        if ' - ' in f:
            print("dir ", f)
            artist = f.split(' - ')[0].strip()
            album = ' - '.join(f.split(' - ')[1:])
            d = os.path.join(artist, album)
            print("dir ", d)
            os.makedirs(d, exist_ok=True)
            for i in os.listdir(f):
                 print(os.path.join(f, i), ' -> ', os.path.join(d, i))
                 os.rename(
                        os.path.join(f, i),
                        os.path.join(d, i),
                )

            print()
© www.soinside.com 2019 - 2024. All rights reserved.