Python 重命名目录中的多个文件

标签 python rename

初学者问题:我正在尝试重命名目录中的所有 .xlsx 文件。我了解如何将字符串中的字符替换为另一个字符,但是如何删除呢?更具体地说,我在一个目录中有多个文件:0123_TEST_01、0456_TEST_02。等。我正在尝试删除文件名中的前缀,这将导致以下结果:TEST_01、TEST_02。

我正在尝试使用 os.rename 并将其放入循环中,但不确定我是否应该使用 len() 和一些数学来尝试返回正确的命名约定。下面的代码是我目前的立场。如果这没有意义,请告诉我。谢谢。

import os
import shutil
import glob

src_files = os.listdir('C:/Users/acars/Desktop/b')

for file_name in src_files: 
       os.rename(fileName, filename.replace())

最佳答案

只需在下划线处拆分一次并使用第二个元素,glob 还会为您找到所有的 xlsx 文件,并返回完整路径:

from os import path, rename
from glob import glob

src_files = glob('C:/Users/acars/Desktop/b/*.xlsx')
pth = 'C:/Users/acars/Desktop/b/'

for file_name in src_files:         
    rename(file_name, path.join(pth, path.basename(file_name).split("_",1)[1])

如果您只有 xlsx 文件并且没有使用 glob,则需要加入路径:

from os import path, rename
from glob import glob


pth = 'C:/Users/acars/Desktop/b'
src_files = os.listdir(pth)

for file_name in src_files:
    new = file_name.split("_", 1)[1]
    file_name = path.join(pth, file_name)
    rename(file_name, path.join(pth, new))

关于Python 重命名目录中的多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34243896/

相关文章:

python - Django-如何确定 ModelForm init 中的字段类型?

python - 在 Django 中使用电子邮件地址或用户名登录用户

c# - 获取不存在的文件

iis-7 - 在 IIS 7.0 中重命名应用程序

Python正则表达式从末尾匹配mac地址?

python - 为什么我的 if 语句在 while 循环中不起作用?

python - 彻底解析文件中的所有匹配项

windows - 从 Zip 文件夹中提取特定文件并重命名以包含 Zip 名称的批处理文件

powershell - 在 PowerShell 中处理文件名和文件夹名中的括号

Python:使用 shutil.move 或 os.rename 移动文件夹