首页 > 解决方案 > 在不知道部分路径的情况下重命名目录中的子文件夹

问题描述

这个问题很简单,虽然我找不到我的问题的答案。我正在尝试从一个文件夹创建一个 7z 文件,其路径由定义的参数确定。问题是,我需要在创建该文件之前重命名一个文件夹。谢天谢地,那个“文件夹”的名字总是一样的,最终的名字也总是一样的。但问题在于通往那条道路的方式。该文件夹始终位于名称可以变化的文件夹中(它不倾向于这样做,但从长远来看是不可行的)。从长远来看,这是路线:

carpetamareinicialresultant\\random-folder-that-can-vary\\folder-to-rename

目前的定义代码是这样的:

def sevenzipoficial(tipus, cataleg, cançó, edició):
    if not os.path.exists(carpetamareinicial + '\\' + tipus + '\\' + cançó + '\\' + edició + ' - ' + cataleg):
        input('La carpeta inicial escollida no existeix. Pitja Enter per tornar al menú principal...')
        return -1
        menuprincipal = True
    carpetamareinicialresultant = os.path.join(carpetamareinicial, tipus, cançó, edició + ' - ' + cataleg + '\\', 'Discs' + '\\')  # Carpeta on està la música escollida
    carpetamarefinalresultant = os.path.join(carpetamarefinal, tipus, cançó, edició + ' - ' + cataleg + '\\') # Carpeta on es guardarà la música comprimida
    if not os.path.isfile(cataleg + '.7z'):
        print(subprocess.call(['7z', 'a', cataleg, '-p{racer21}', carpetamareinicialresultant]))
    if not os.path.exists(carpetamarefinalresultant):
        os.makedirs(carpetamarefinalresultant)
    if os.path.isfile(carpetamarefinalresultant + '\\' + cataleg + '.7z'):
        os.remove(carpetamarefinalresultant + '\\' + cataleg + '.7z')
    shutil.move(cataleg + '.7z', carpetamarefinalresultant)

PD:在完成后使该过程恢复也是一种奖励,但我想我会是相同的过程,但会改变一些变量。

标签: pythonpython-3.xrecursionrename

解决方案


推荐阅读