文件重命名2.0

#小白級別,大神勿擾import os

def input_folder_name():
    folder_name=input("請輸入要重命名的文件夾:\n")
    return folder_name

def input_str_name():
    str_name=str(input("請輸入字符串(可用於新增/刪除):\n"))+'-'
    return str_name

def input_mofidy_str():
    mofidy_str=str(input("請輸入修改後的字符串:\n"))+'-'
    return mofidy_str


def file_name_chongmingming_add_str(): #增長字符串的方法
    folder_name=input_folder_name()
    str_name=input_str_name()
    file_names=os.listdir(folder_name)
    for name in file_names:    
        old_file_name=folder_name+'/'+name
        new_file_name=folder_name+'/'+str_name+name
        os.rename(old_file_name,new_file_name)
    else:
        print("未找到查詢的字符串")

def file_name_chongmingming_delete_str(): #刪除增長的字符串的方法
    folder_name=input_folder_name()
    str_name=input_str_name()
    file_names=os.listdir(folder_name)
    for name in file_names:
        old_file_name=folder_name+'/'+name
        if str_name in name:
            find_str_index=name.rfind(str_name) #從文件名中查找匹配的字符串,從右往左,若是從左往右匹配出來的結果是0,取出來仍是源文件名
            if find_str_index==0: #當匹配出字符串的長度未0時,文件名爲匹配出的字符長度加上查找的字符串的長度,從而獲得最終的文件名
                new_file=name[find_str_index+len(str_name):]
            else:
                new_file=name[find_str_index:]    
            new_file_name=folder_name+'/'+new_file
            os.rename(old_file_name,new_file_name)
    else:
        print("未找到查詢的字符串")


def file_name_chongmingming_modify_str(): #修改增長的字符串的方法
    folder_name=input_folder_name()
    str_name=input_str_name()
    mofidy_str=input_mofidy_str()
    file_names=os.listdir(folder_name)
    for name in file_names:
        old_file_name=folder_name+'/'+name 
        if str_name in name:
            find_str_index=name.rfind(str_name)
            find_str_count=name.count(str_name)
            if find_str_index==0 or find_str_count==1:
                new_file=name[:find_str_index]+mofidy_str+name[find_str_index+len(str_name):] 
                #拼接文件名,文件名前部分爲匹配出來的下標到文件最前面的內容,中間內容爲修改的字符串,文件名末尾爲匹配下標到文件後面的內容
            else:
                new_file=mofidy_str+name[find_str_index+len(str_name):]    
                # print(name[find_str_index:])
                # print(new_file)
            new_file_name=folder_name+'/'+new_file
            os.rename(old_file_name,new_file_name)
    else:
        print("未找到查詢的字符串")
if __name__=='__main__':
    for a in range(1):
        # file_name_chongmingming_add_str()
        file_name_chongmingming_delete_str()
        # file_name_chongmingming_modify_str()
相關文章
相關標籤/搜索