如何更改文件夹中的所有文件名?

2024-09-29 19:36:03 发布

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

我有一个文件夹,其中包含约300个CSV文件,有不同的名称。我要将所有文件名更改为一些新名称:

我的输入文件:

newAdress.csv
yourInformation.csv
countatnt.csv
.
.

我查看了一些帖子,比如here,但是没有按我想要的格式保存。你知道吗

我试着做到:

import glob, os
def rename(dir, pattern, titlePattern):
    print('pattern', pattern)
    for pathAndFilename in glob.iglob(os.path.join(dir, pattern)):
        title, ext = os.path.splitext(os.path.basename(pathAndFilename))
        os.rename(pathAndFilename, 
                  os.path.join(dir, titlePattern % title + ext))

然后:

rename(r'/Users/Documnet/test', r'*.csv', r'file(%s)')

我得到了:

file(newAdress).csv
file(yourInformation).csv
.

但是我需要以(newAdress.csv -> file1.csvyourInformation.csv -> file2.csv的格式保存它:

file1.csv
file2.csv
file3.csv
.
.

Tags: 文件csvpath名称os格式dirglob
1条回答
网友
1楼 · 发布于 2024-09-29 19:36:03

您应该将for循环更改为以下内容:

for n, pathAndFilename in enumerate(glob.iglob(os.path.join(dir, pattern))):
    _, ext = os.path.splitext(os.path.basename(pathAndFilename))
    os.rename(pathAndFilename, os.path.join(dir, titlePattern.format(n+1)) + ext)

但也应该将函数调用为(去掉括号):

rename(r'/Users/Documnet/test', r'*.csv', r'file{}')

注意,我还更改了语法,因为str.format优于%语法。你知道吗

相关问题 更多 >

    热门问题