文件名替换;通过定义字符串列表创建循环

Filename replacing; creating a loop by defining a string list

我有以下代码重命名一定数量的文件,这些文件具有关键字,例如:'Alamo'、'Portland'、...和一些其他自定义名称,我想要在它旁边放一个数字: 即“76-Alamo”/“77-波特兰”

有没有办法通过将关键字定义为字符串来重复相同的代码N次?类似于:

姓名 = ('Alamo', 'Portland', 'Name3',...,)

数字 = ('76', '77', '78',...,)

代码:

进口os

os.chdir('.')

对于 os.listdir() 中的文件: 诊所,分机 = os.path.splitext(文件)

for f in os.listdir():
    if f.startswith('Alamo'):
        old_name = f
        new_name = '{}-{}'.format("76", f)
        os.rename(old_name, new_name)
                    
        for f in os.listdir():
            if f.startswith('Portland'):
                old_name = f
                new_name = '{}-{}'.format("77", f)
                os.rename(old_name, new_name)

我很欣赏对此的任何见解。如果我可以提供任何进一步的详细信息,请告诉我。

你可以用字典记录你要加的名字和号码,然后在字典里查每个键。

rename_dict = {
   'Alamo': 76,
   'Portland': 77,
   'Name3': 78,
   ...
}

for f in os.listdir():
    for keyword in rename_dict.keys():
        if f.startswith(keyword):
            old_name = f
            new_name = '{}-{}'.format(str(rename_dict[keyword]), f)
            os.rename(old_name, new_name)

或者,如果您知道每个关键字的数字每次都会递增 1,则可以将每个关键字存储在一个列表中,并使用该关键字的索引加上一个偏移量。