在python中重命名多个文件,名称相同但扩展名不同

2024-04-25 19:41:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图更改多个文件的名称,这些文件都有相同的名称,但扩展名不同,我得到的印象是有一个简单的简化方法来实现这一点,但我不知道怎么做。在

目前我的代码是这样的

import os

def rename_test():
    os.rename ('cheddar.tasty.coor', 'newcheddar.vintage.coor')
    os.rename ('cheddar.tasty.txt', 'newcheddar.vintage.txt')
    os.rename ('cheddar.tasty.csv', 'newcheddar.vintage.csv')

rename_test()

Tags: 文件csv方法代码testtxt名称os
3条回答
def rename_test():
    for ext in "coor txt csv".split():
        os.rename('cheddar.tasty.'+ext, 'newcheddar.vintage.'+ext)
import os
def rename(dirpath):
    whitelist = set('txt csv coor'.split())
    for fname in os.listdir(dirpath):
        name, cat, ext = os.path.basename(os.path.join(dirpath, fname)).rsplit(os.path.extsep,2)
        if ext not in whitelist:
            continue
        name = 'new' + name
        cat = 'vintage'
        newname = os.path.extsep.join([name, cat, ext])
        os.rename(os.path.join(dirpath, fname), os.path.join(dirpath, newname))

您可以使用glob模块。这取决于你想改进什么。在

for ext in ('*.coor', '*.txt', '*.csv'):
    for filename in glob.glob(ext):
        newname = filename.replace("cheddar.", "newcheddar.").replace(".tasty.", ".vintage.")
        os.rename(filename, newnew)

相关问题 更多 >