Skip to main content
 首页 » 编程设计

python之使用python重命名文件名

2025年05月04日12yyy_WW

我需要简单地在特定目录中的所有文件的末尾添加“_Manual”一词 这是我目前正在使用的脚本 - 我没有使用 python 的经验,所以这个脚本是我周围其他脚本的科学怪人!

它没有给出任何错误信息,但它也不起作用..

folder = "C:\Documents and Settings\DuffA\Bureaublad\test" 
 
import os, glob 
 
for root, dirs, filenames in os.walk(folder): 
    for filename in filenames: 
        filename_split = os.path.splitext(filename) # filename and extensionname (extension in [1]) 
        filename_zero = filename_split[0] 
        os.rename(filename_zero, filename_zero + "_manual") 

我正在使用

folder = "C:\Documents and Settings\DuffA\Bureaublad\test" 
import os # glob is unnecessary 
for root, dirs, filenames in os.walk(folder): 
    for filename in filenames: 
        fullpath = os.path.join(root, filename) 
        filename_split = os.path.splitext(fullpath) # filename and extensionname (extension in [1]) 
        filename_zero, fileext = filename_split 
        print fullpath, filename_zero + "_manual" + fileext 
        os.rename(fullpath, filename_zero + "_manual" + fileext) 

但是还是不行 它不打印任何内容,文件夹中也没有任何更改!

请您参考如下方法:

os.rename 需要源文件名和目标文件名。变量 filename 包含您当前的文件名(例如,“something.txt”),而您的拆分将其分为 something 和 txt。作为要重命名的源文件,您只需指定 something,它会自动失败。

相反,您想重命名 filename 中给定的文件,但是当您也进入子文件夹时,您需要确保使用绝对路径。为此,您可以使用 os.path.join(root, filename)。

所以最后你会得到这样的结果:

os.rename(os.path.join(root, filename),  
  os.path.join(root, filename_zero + "_manual" + filename_split[1])) 

这会将 dir1/something.txt 重命名为 dir1/something_manual.txt。