Python 3.x 如何使用python更改文件扩展名

Python 3.x 如何使用python更改文件扩展名,python-3.x,Python 3.x,在一个文件夹中,我有100个扩展名为“.txt”、“.doc”、“.pdf”的文件。我需要将文件重命名为: 如果文件名以“.txt”结尾->将文件名以“.jpg”结尾 如果文件名以“.doc”结尾->将文件名替换为“.mp3” 如果文件名以“.pdf”结尾->将文件名替换为“.mp4” 到目前为止,我已经试过这个了 import os,sys folder ="C:/Users/TestFolder" for filename in os.listdir(folder): base_f

在一个文件夹中,我有100个扩展名为“.txt”、“.doc”、“.pdf”的文件。我需要将文件重命名为:

  • 如果文件名以“.txt”结尾->将文件名以“.jpg”结尾
  • 如果文件名以“.doc”结尾->将文件名替换为“.mp3”
  • 如果文件名以“.pdf”结尾->将文件名替换为“.mp4”
  • 到目前为止,我已经试过这个了

    import os,sys
    
    folder ="C:/Users/TestFolder"
    for filename in os.listdir(folder):
        base_file, ext = os.path.splitext(filename)
        print(ext)
        if ext == '.txt':
            print("------")
            print(filename)
            print(base_file)
            print(ext)
            os.rename(filename, base_file + '.jpg')
    
        elif ext == '.doc':
            print("------")
            os.rename(filename, base_file + '.mp3')
    
        elif ext == '.pdf':
            print("------")
            os.rename(filename, base_file + '.mp4')
        else:
            print("Not found")
    

    首先,您可以将映射存储在字典中,然后在遍历文件夹并找到扩展名时,只需使用映射生成新文件名并保存即可

    import os
    
    folder ="C:/Users/TestFolder"
    
    #Dictionary for extension mappings 
    rename_dict = {'txt': 'jpg', 'doc': 'mp3', 'pdf': 'mp4'}
    for filename in os.listdir(folder):
    
        #Get the extension and remove . from it
        base_file, ext = os.path.splitext(filename)
        ext = ext.replace('.','')
    
        #If you find the extension to rename
        if ext in rename_dict:
            #Create the new file name
            new_ext = rename_dict[ext]
            new_file = base_file + '.' + new_ext
    
            #Create the full old and new path
            old_path = os.path.join(folder, filename)
            new_path = os.path.join(folder, new_file)
    
            #Rename the file
            os.rename(old_path, new_path)
    

    所以那么会发生什么呢?您可以使用字典来保存映射,而不是if/elif/else链!请在下面@chinna检查我的答案