重命名或替换文件夹中的文件

问题描述

我有一个包含图像的文件夹。每个图像命名为

abc_001.jpg 
abc_002.jpg 

我需要通过删除一个文本 abc_ 并从数字开始来重命名图像

我照做了

import os

path = '/Desktop/my_folder'

folder = os.fsencode(path)

filenames = []

for file in os.listdir(folder):
    filename = os.fsdecode(file)
    if filename.endswith ('.jpg'):
          filenames=filename.replace('abc_','')

但它不起作用。如何替换第一个文本或删除它们?

我试过了

for file in os.listdir(folder):
    filename = os.fsdecode(file)
    if filename.endswith ('.jpg'):
        filenames = filename.replace('abc_','')
        os.rename(filename,filenames)

但是得到了

 os.rename(filename,filenames)
FileNotFoundError: [Errno 2] No such file or directory: 'abc_000000000009.jpg' -> '000000000009.jpg'

解决方法

您可以使用 os.rename(source,destination) 重命名文件或目录

其中 source 是您的文件路径,destination 是新的文件名路径

,

您需要使用 os.rename(src,dst) 而不是 filename.replace。如果您有任何问题,请告诉我。

您需要按以下顺序重命名文件:

for file in os.listdir(folder):
    filename = os.fsdecode(file)
    if filename.endswith ('.jpg'):
          new_file_name=filename.replace('abc_','')
           os.rename(filename,new_file_name)
,

我解决了这个问题,所以任何面临同样问题的人都可以尝试

for file in os.listdir(folder):
    filename = os.fsdecode(file)
    if filename.endswith ('.jpg'): 
        filenames = filename.replace('abc_','')
        os.rename(os.path.join(path,filename),os.path.join(path,filenames))

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...