使用python为文件批量重命名&更改路径

本文详细介绍了如何利用Python的os和shutil模块实现文件的批量重命名以及改变文件路径。通过实例代码演示了如何遍历指定目录,根据特定规则对文件名进行替换操作,并将文件移动到新的路径下,提升文件管理效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

"""
本程序的目的:
    给"huhu"文件夹下的文件重新取名字
    使用python程序将"huhu"文件夹下边的文件移动到"new_path"对应的文件夹下

"""


import os
import sys  
import io
import shutil

#改变标准输出的默认编码
sys.stdout = io.TextIOWrapper(sys.stdout.buffer,encoding='utf8') 

def reName(dirname):



    # 该文件夹下所有的文件(包括文件夹)
    count = 10   
    for files in os.listdir(dirname):       


        count = count + 1
        # 原来的文件路径
        oldDir = os.path.join(dirname,files)       

        # 文件扩展
        filetype=os.path.splitext(files)[1]
        # 新的文件路径
        newDir=os.path.join(dirname,str(count)+filetype)
        #print(oldDir)
        #print(newDir)
        # 重命名
        os.rename(oldDir,newDir)








if __name__ == '__main__':
        dirname = 'C:/RRRRRQQ的同步消息/2063439269/FileRecv/MobileFile/huhu'
        new_path="C:/para/samples"
        #reName(dirname)
        for f in os.listdir(dirname):
            old_path=os.path.join(dirname,f)  
            shutil.move(old_path,new_path)





"""
需要注意的细节:
1-------oldDir和newDir都是表示绝对路径;
2-------给文件新命的名字不能和问价夹中已经有的名字相同
"""
若要删除具有某后缀名的文件时,使用
if filetype==".html":
         os.remove(oldDir)#remove的参数是绝对路径,而不是文件名
Python批量修改文件名是一个常见的任务,可以利用`os`库提供的功能来实现这个目标。下面我将详细介绍如何编写一个简单的脚本来完成这项工作。 ### 使用 `os.rename()` 函数 我们可以遍历指定目录下的所有文件,并通过条件判断或字符串操作等手段对每个文件的名称进行更改: ```python import os def batch_rename_files(directory, old_str, new_str): # 列出给定路径下所有的文件文件夹列表 for filename in os.listdir(directory): # 如果文件包含需要替换的文字,则对其进行重命名处理 if old_str in filename: try: src = f"{directory}/{filename}" dst = f"{directory}/{filename.replace(old_str, new_str)}" print(f"Renaming {src} to {dst}") # 实际执行更名操作 os.rename(src, dst) except Exception as e: print(e) # 设置待处理的目标文件夹、旧字串以及新字串 target_directory = "/path/to/files" old_string = "example_old_text" new_string = "replacement_new_text" batch_rename_files(target_directory, old_string, new_string) ``` 在这个例子中,我们定义了一个名为 `batch_rename_files` 的函数接受三个参数:目标文件夹的位置 (`directory`) 、要替换成的新文本(`new_str`) 和当前存在的字符序列(`old_str`). 然后它会迭代该位置的所有项目并检查它们是否含有特定模式;如果存在就应用新的命名规则. 此外还有其他方法如使用正则表达式来进行复杂匹配等等。如果你有特殊需求比如按顺序编号,也可以调整此基本框架满足实际场景的要求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱码仕1024

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值