在这种情况下,如何重命名多个文件。

时间:2019-08-10 04:02:59

标签: python python-3.x windows file-rename

我正在尝试将一些“ .jpg”的文件名更改为自定义名称,后跟数字。因此它看起来像这样: Name1.jpg; Name2.jpg; Name3.jpg

问题是它不会将当前名称更改为新名称。目录正确。

图片:https://imgur.com/a/qBgQOga

本教程的来源:https://www.geeksforgeeks.org/rename-multiple-files-using-python/

我在Windows 10 64位系统上使用Python3

我以四种不同的方式尝试了dir

1. os.listdir('C:/Users/Inty/Desktop/test'):
2. os.listdir('C://Users//Inty//Desktop//test'):
3. os.listdir('C:\Users\Inty\Desktop\\test'):
4. os.listdir('C:\\Users\\Inty\\Desktop\\test'):
5. os.listdir('C:/Users/Inty/Desktop/test/'):

还玩过dst = '.jpg' to '.JPG',但似乎没有什么区别。

# Imports
import os


# Functions
def main():
    i = 0

    for filename in os.listdir('C:/Users/Inty/Desktop/test'):
        dst = 'Name' + str(i) + '.JPG'
        src = 'C:/Users/Inty/Desktop/test' + filename
        dst = 'C:/Users/Inty/Desktop/test' + dst

        os.rename(src, dst)
        i += 1

    if __name__ == '__main__':
        main()


Process finished with exit code 0

2 个答案:

答案 0 :(得分:0)

您缺少斜线。也许您想要:

src = 'C:/Users/Inty/Desktop/test/' + filename
dst = 'C:/Users/Inty/Desktop/test/' + dst

一种更好的方法是使用os.path.join

src = os.path.join('C:/Users/Inty/Desktop/test', filename)

答案 1 :(得分:0)

已解决

我稍微修改了代码。主要原因是因为我在if __name__ == '__main__':循环中有for

这使if进入了函数内部。

import os

# Functions

PATH = 'C:\\Users\\Inty\\Desktop\\test'


def main():
    i = 0

    for filename in os.listdir(PATH):
        dst = 'Name' + str(i) + '.JPG'
        src = os.path.join(PATH, filename)
        dst = os.path.join(PATH, dst)

        os.rename(src, dst)
        i += 1

if __name__ == '__main__':
    main()