Python批量修改文件名操作指南(文件名的替换、前缀、后缀的添加)

 更新时间:2024年04月26日 09:22:28   作者:Sitin涛哥  
很多时候我们手上有一堆文件,需要修改名称时需要一个一个修改,太麻烦了,这篇文章主要给大家介绍了关于Python批量修改文件名的相关资料,包括文件名的替换、前缀、后缀的添加的相关资料,需要的朋友可以参考下

前言

在日常工作中,经常会遇到需要批量修改文件名的情况,可能是为了更好的组织文件,也可能是为了处理大量的数据文件。Python提供了强大的工具和库来处理这个任务,本文将介绍如何使用Python来批量修改文件名,包括文件名的替换、前缀、后缀的添加等多种操作。

使用os模块和os.path模块

Python的os模块和os.path模块提供了文件和目录操作的基本功能,可以用于文件名的操作。

1. 文件名替换

要批量替换文件名中的特定字符串,可以使用os.listdir()列出目录中的所有文件,然后使用字符串的replace()方法替换文件名中的字符串。

import os

def replace_in_filenames(directory, old_str, new_str):
    for filename in os.listdir(directory):
        if old_str in filename:
            new_filename = filename.replace(old_str, new_str)
            os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))

# 示例用法
replace_in_filenames('/path/to/directory', 'old_string', 'new_string')

2. 添加前缀和后缀

要在文件名前后添加前缀或后缀,可以使用字符串的拼接操作。

import os

def add_prefix_suffix(directory, prefix, suffix):
    for filename in os.listdir(directory):
        new_filename = prefix + filename + suffix
        os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))

# 示例用法
add_prefix_suffix('/path/to/directory', 'prefix_', '_suffix')

使用glob模块

glob模块提供了更强大的文件匹配和查找功能,可以使用通配符来选择文件。

1. 文件名匹配

要选择符合特定模式的文件,可以使用glob.glob()函数。

import glob

files = glob.glob('/path/to/directory/*.txt')  # 匹配所有以.txt结尾的文件

2. 批量重命名

结合globos模块,可以轻松批量重命名文件。

import glob
import os

def rename_files(directory, pattern, new_name):
    files = glob.glob(os.path.join(directory, pattern))
    for old_file in files:
        new_file = os.path.join(directory, new_name)
        os.rename(old_file, new_file)

# 示例用法
rename_files('/path/to/directory', '*.txt', 'new_name.txt')

使用shutil模块

shutil模块提供了更多文件操作的功能,包括复制、移动、删除等。

1. 移动文件并重命名

要将文件移动到新的目录并重命名,可以使用shutil.move()函数。

import shutil

def move_and_rename(source, destination):
    shutil.move(source, destination)

# 示例用法
move_and_rename('/path/to/source/file.txt', '/path/to/destination/new_file.txt')

批量修改文件名的高级操作

在批量修改文件名的过程中,有时需要进行更高级的操作,例如使用正则表达式匹配文件名,根据文件的元数据修改文件名等。下面将介绍一些高级操作。

1. 使用正则表达式匹配文件名

Python的re模块允许你使用正则表达式来匹配文件名。这对于复杂的文件名操作非常有用。

import os
import re

def rename_with_regex(directory, pattern, replacement):
    for filename in os.listdir(directory):
        new_filename = re.sub(pattern, replacement, filename)
        os.rename(os.path.join(directory, filename), os.path.join(directory, new_filename))

# 示例用法:将所有数字移动到文件名末尾
rename_with_regex('/path/to/directory', r'(\d+)(.*)', r'\2\1')

2. 使用文件元数据修改文件名

有时需要根据文件的元数据来修改文件名,例如文件的创建日期、修改日期等。可以使用os.path.getctime()os.path.getmtime()函数获取文件的创建时间和修改时间。

import os
import datetime

def rename_with_metadata(directory):
    for filename in os.listdir(directory):
        filepath = os.path.join(directory, filename)
        created_time = os.path.getctime(filepath)
        modified_time = os.path.getmtime(filepath)
        
        # 将时间戳转换为日期字符串,例如:2023-01-15_12-30-45
        created_date = datetime.datetime.fromtimestamp(created_time).strftime('%Y-%m-%d_%H-%M-%S')
        modified_date = datetime.datetime.fromtimestamp(modified_time).strftime('%Y-%m-%d_%H-%M-%S')
        
        new_filename = f"created_{created_date}_modified_{modified_date}.txt"
        os.rename(filepath, os.path.join(directory, new_filename))

# 示例用法:根据文件的创建和修改时间修改文件名
rename_with_metadata('/path/to/directory')

3. 批量重命名文件夹中的文件

有时需要对文件夹中的所有子文件夹进行批量操作,包括重命名子文件夹中的文件。

import os

def rename_files_in_subdirectories(directory, pattern, replacement):
    for root, _, files in os.walk(directory):
        for filename in files:
            if re.search(pattern, filename):
                new_filename = re.sub(pattern, replacement, filename)
                os.rename(os.path.join(root, filename), os.path.join(root, new_filename))

# 示例用法:在所有子文件夹中批量修改文件名
rename_files_in_subdirectories('/path/to/parent_directory', r'pattern', r'replacement')

总结

在日常工作和项目中,批量修改文件名是一个常见的任务,而Python提供了多种方法来简化这一过程。本文详细介绍了如何使用Python的不同模块和技术来进行文件名的批量修改,涵盖了基本操作、高级操作以及文件夹中文件的操作。

首先,使用了os模块和os.path模块,展示了如何批量替换文件名中的特定字符串,以及如何添加前缀和后缀。这些操作适用于基本的文件名修改需求。其次,介绍了glob模块,它使文件名的匹配和选择变得更加灵活。通过结合globos模块,可以轻松地批量重命名文件,更好地管理文件。

进一步,探讨了高级操作,包括使用正则表达式匹配文件名和根据文件的元数据来修改文件名。这些方法适用于处理复杂的文件名操作和根据文件属性进行批量重命名的情况。最后,还介绍了如何在子文件夹中批量修改文件名,以满足更广泛的需求,特别是在处理大量文件和目录结构时。

总之,Python为文件名批量修改任务提供了强大的工具和库,使这一任务变得更加高效和灵活。选择适合自己需求的方法,结合示例代码,可以帮助大家更轻松地管理和组织文件,提高工作效率。

到此这篇关于Python批量修改文件名操作指南的文章就介绍到这了,更多相关Python批量修改文件名内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用cx_Oracle模块操作Oracle数据库详解

    Python使用cx_Oracle模块操作Oracle数据库详解

    这篇文章主要介绍了Python使用cx_Oracle模块操作Oracle数据库,结合实例形式较为详细的分析了cx_Oracle模块的下载、安装及针对Oracle数据库的连接、执行SQL语句、存储过程等相关操作技巧,需要的朋友可以参考下
    2018-05-05
  • 解决django中form表单设置action后无法回到原页面的问题

    解决django中form表单设置action后无法回到原页面的问题

    这篇文章主要介绍了解决django中form表单设置action后无法回到原页面的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • python3爬虫中多线程的优势总结

    python3爬虫中多线程的优势总结

    在本篇文章里小编给大家分享了一篇关于python3爬虫中多线程的优势总结内容,需要的朋友们可以参考学习下。
    2020-11-11
  • python中常见错误及解决方法

    python中常见错误及解决方法

    在本篇内容里小编给大家分享的是一篇关于python中常见错误及解决方法的知识点内容,需要的朋友们参考下。
    2020-06-06
  • python代码实现扫码关注公众号登录的实战

    python代码实现扫码关注公众号登录的实战

    本文主要介绍了python代码实现扫码关注公众号登录的实战,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • python flappy bird小游戏分步实现流程

    python flappy bird小游戏分步实现流程

    哈喽,哈喽~今天小编又来分享小游戏了——flappy bird(飞扬的小鸟),这个游戏非常的经典,游戏中玩家必须控制一只小鸟,跨越由各种不同长度水管所组成的障碍
    2022-02-02
  • python opencv鼠标画矩形框之cv2.rectangle()函数

    python opencv鼠标画矩形框之cv2.rectangle()函数

    鼠标操作属于用户接口设计,以前一直使用Qt来做,但是如果只需要简单的鼠标,键盘操作,直接调用opencv库的函数也未尝不可,下面这篇文章主要给大家介绍了关于python opencv鼠标画矩形框cv2.rectangle()函数的相关资料,需要的朋友可以参考下
    2021-10-10
  • Python-OpenCV深度学习入门示例详解

    Python-OpenCV深度学习入门示例详解

    深度学习已经成为机器学习中最受欢迎和发展最快的领域。深度学习的常见应用包括语音识别、图像识别、自然语言处理、推荐系统等等。本文将通过一些示例代码,带你详细了解深入学习
    2021-12-12
  • 使用Python-pptx 告别繁琐的幻灯片制作

    使用Python-pptx 告别繁琐的幻灯片制作

    这篇文章主要介绍了使用Python-pptx 告别繁琐的幻灯片制作,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python疲劳驾驶困倦低头检测功能的实现

    python疲劳驾驶困倦低头检测功能的实现

    这篇文章主要介绍了python疲劳驾驶困倦低头检测,该系统可以检测一个人在开车时是否困倦,及时提醒,做到安全隐患排查,对实现代码感兴趣的朋友一起看看吧
    2022-04-04

最新评论