返回

Python批量修改文件名:文件管理利器助力提升效率

后端

轻松批量修改文件名:Python文件管理利器

简介

在繁忙的日常工作和项目中,我们经常需要对海量文件进行重命名、修改或整理。手动操作不仅费时费力,还容易出错。Python凭借其强大的编程能力,成为我们批量修改文件名的有力助手。本文将详细介绍如何使用Python执行各种文件修改操作,包括替换字符串、添加前缀/后缀、修改文件夹中文件的名称。

基本操作

替换文件名中的特定字符串

import os

# 获取当前目录下的所有文件
files = os.listdir(".")

# 循环遍历文件
for file in files:
    # 检查文件名中是否包含特定字符串
    if "old_string" in file:
        # 替换文件名中的特定字符串
        new_file = file.replace("old_string", "new_string")

        # 重命名文件
        os.rename(file, new_file)

这段代码使用os模块来获取当前目录下的所有文件,并逐一检查文件名中是否包含特定字符串。如果找到匹配的字符串,则将其替换为新的字符串,并使用os.rename函数重命名文件。

添加前缀或后缀

import os

# 获取当前目录下的所有文件
files = os.listdir(".")

# 循环遍历文件
for file in files:
    # 添加前缀
    new_file = "prefix_" + file

    # 添加后缀
    # new_file = file + "_suffix"

    # 重命名文件
    os.rename(file, new_file)

类似地,此代码也使用os模块来获取文件列表,然后依次为每个文件名添加前缀或后缀。它同样使用os.rename函数来更新文件名。

高级操作

使用glob模块进行灵活的文件名匹配

glob模块提供了更强大的文件名匹配和选择功能。它使用通配符来匹配文件名的不同部分,例如:

import glob

# 匹配所有以.txt结尾的文件
files = glob.glob("*.txt")

# 匹配所有包含"image"字符串的文件
files = glob.glob("*image*")

# 匹配所有以.txt结尾且包含"image"字符串的文件
files = glob.glob("*image*.txt")

glob.glob函数接受一个模式参数,该模式可以包含通配符来指定要匹配的文件名特征。

结合glob和os模块批量重命名文件

import glob
import os

# 匹配所有以.txt结尾的文件
files = glob.glob("*.txt")

# 循环遍历文件
for file in files:
    # 重命名文件
    new_file = file.replace(".txt", ".csv")
    os.rename(file, new_file)

此代码将glob模块与os模块结合起来,首先使用glob.glob获取所有以.txt结尾的文件,然后逐个替换文件名中的扩展名,并使用os.rename更新文件名。

修改文件夹中文件的名称

修改指定文件夹中的文件

import os

# 获取指定文件夹下的所有文件
files = os.listdir("folder_name")

# 循环遍历文件
for file in files:
    # 重命名文件
    new_file = file.replace(".txt", ".csv")
    os.rename(file, new_file)

此代码获取指定文件夹下的所有文件列表,并按指定规则更新文件名。

修改文件夹中所有子文件夹下的文件

import os

# 获取当前目录下的所有子文件夹
subdirs = [d for d in os.listdir(".") if os.path.isdir(d)]

# 循环遍历子文件夹
for subdir in subdirs:
    # 获取子文件夹下的所有文件
    files = os.listdir(subdir)

    # 循环遍历文件
    for file in files:
        # 重命名文件
        new_file = file.replace(".txt", ".csv")
        os.rename(file, new_file)

此代码将递归遍历当前目录及其所有子文件夹,并对每个遇到的文件更新文件名。

结语

掌握了这些Python技巧,您就可以轻松高效地管理和修改海量文件。告别繁琐的手动操作,让Python成为您文件管理的得力助手。

常见问题解答

  1. 如何在文件名中添加时间戳?

    import os
    
    # 获取当前时间戳
    timestamp = int(time.time())
    
    # 循环遍历文件
    for file in os.listdir("."):
        # 添加时间戳到文件名
        new_file = f"{timestamp}_{file}"
    
        # 重命名文件
        os.rename(file, new_file)
    
  2. 如何从文件名中删除数字?

    import os
    import re
    
    # 循环遍历文件
    for file in os.listdir("."):
        # 使用正则表达式删除数字
        new_file = re.sub(r"\d+", "", file)
    
        # 重命名文件
        os.rename(file, new_file)
    
  3. 如何在文件名中查找并替换特定文本?

    import os
    
    # 定义要查找和替换的文本
    find_text = "old_text"
    replace_text = "new_text"
    
    # 循环遍历文件
    for file in os.listdir("."):
        # 检查文件名中是否包含要查找的文本
        if find_text in file:
            # 替换文件名中的文本
            new_file = file.replace(find_text, replace_text)
    
            # 重命名文件
            os.rename(file, new_file)
    
  4. 如何将文件移动到另一个文件夹?

    import os
    
    # 定义源文件夹和目标文件夹
    source_dir = "source_folder"
    destination_dir = "destination_folder"
    
    # 获取源文件夹中的所有文件
    files = os.listdir(source_dir)
    
    # 循环遍历文件
    for file in files:
        # 移动文件到目标文件夹
        os.rename(os.path.join(source_dir, file), os.path.join(destination_dir, file))
    
  5. 如何批量压缩文件?

    import os
    import zipfile
    
    # 创建zip压缩文件
    with zipfile.ZipFile("compressed_files.zip", "w") as zip_file:
        # 循环遍历文件
        for file in os.listdir("."):
            # 将文件添加到zip压缩文件
            zip_file.write(file)