首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

用于将文件重命名为文件夹名称的Python脚本

你可以编写一个Python脚本来将文件重命名为其所在文件夹的名称。以下是一个示例脚本,它会遍历指定目录中的所有文件,并将每个文件重命名为其所在文件夹的名称。

示例脚本

代码语言:javascript
复制
import os

def rename_files_to_folder_name(root_dir):
    for dirpath, dirnames, filenames in os.walk(root_dir):
        for filename in filenames:
            # 获取文件的完整路径
            file_path = os.path.join(dirpath, filename)
            
            # 获取文件夹名称
            folder_name = os.path.basename(dirpath)
            
            # 获取文件的扩展名
            file_extension = os.path.splitext(filename)[1]
            
            # 构建新的文件名
            new_filename = folder_name + file_extension
            
            # 构建新的文件路径
            new_file_path = os.path.join(dirpath, new_filename)
            
            # 重命名文件
            os.rename(file_path, new_file_path)
            print(f'Renamed: {file_path} -> {new_file_path}')

if __name__ == "__main__":
    # 指定要处理的根目录
    root_directory = "path/to/your/root/directory"
    
    rename_files_to_folder_name(root_directory)

使用说明

  1. 安装Python:确保你已经安装了Python。如果没有安装,可以从Python官网下载并安装。
  2. 保存脚本:将上述脚本保存为一个Python文件,例如rename_files.py
  3. 修改根目录路径:在脚本中,将root_directory变量的值修改为你要处理的根目录的路径。例如,如果你要处理/home/user/documents目录中的文件,将其修改为:

root_directory = "/home/user/documents"

  • 运行脚本:在终端或命令提示符中,导航到脚本所在的目录并运行脚本:

python rename_files.py

注意事项

  • 文件覆盖:如果一个文件夹中有多个文件,重命名操作可能会导致文件覆盖。你可以在重命名之前检查目标文件是否存在,并采取适当的措施(例如,添加一个计数器或时间戳)。
  • 权限:确保你有权限读取和重命名指定目录中的文件。
  • 备份:在运行脚本之前,建议备份你的文件,以防止意外的数据丢失。

示例改进:避免文件覆盖

以下是一个改进版本的脚本,避免文件覆盖:

代码语言:javascript
复制
import os

def rename_files_to_folder_name(root_dir):
    for dirpath, dirnames, filenames in os.walk(root_dir):
        for filename in filenames:
            # 获取文件的完整路径
            file_path = os.path.join(dirpath, filename)
            
            # 获取文件夹名称
            folder_name = os.path.basename(dirpath)
            
            # 获取文件的扩展名
            file_extension = os.path.splitext(filename)[1]
            
            # 构建新的文件名
            new_filename = folder_name + file_extension
            new_file_path = os.path.join(dirpath, new_filename)
            
            # 避免文件覆盖
            counter = 1
            while os.path.exists(new_file_path):
                new_filename = f"{folder_name}_{counter}{file_extension}"
                new_file_path = os.path.join(dirpath, new_filename)
                counter += 1
            
            # 重命名文件
            os.rename(file_path, new_file_path)
            print(f'Renamed: {file_path} -> {new_file_path}')

if __name__ == "__main__":
    # 指定要处理的根目录
    root_directory = "path/to/your/root/directory"
    
    rename_files_to_folder_name(root_directory)

这个改进版本会在文件名冲突时添加一个计数器,避免文件覆盖。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用Python实现批量更改文件夹下图片名称

一、前言 前几天在Python白银交流群有个叫【belongs】粉丝问了一个使用Python实现批量更改文件夹下图片名称问题,如下图所示。 他有个文件夹,里面都是照片,怎么批量更改文件名?...只需要文件名依次递增,如1.gif,2.gif。 二、实现过程 这里【月神】给了一个解决方法,直接上代码了。...import os path = r'D:\hu\python练习\视频剪辑练习\测试图片' # 需要命名路径 filelist = os.listdir(path) count = 0 # 起始命名数字...如果用代码删除重复,可以用图片大小来删除,os.path.getsize可以知道文件大小,然后删除图片文件大小相同就容易了。...这篇文章主要分享了使用Python实现批量更改文件夹下图片名称问题,文中针对该问题给出了具体解析和代码演示,一共两个方法,帮助粉丝顺利解决了问题。

2.6K10
  • 【错误记录】在 Android Studio Terminal 终端执行 gradlew 报错 ( 无法“gradlew”项识别为 cmdlet、函数、脚本文件或可运行程序名称。请检查名称 )

    gradlew”项识别为 cmdlet、函数、脚本文件或可运行程序名称。...请检查名称拼写,如果包括路径,请确保路径正确,然后再试一次。...所在位置 行:1 字符: 1 PS Y:\002_WorkSpace\001_AS\Coroutine> gradlew gradlew : 无法“gradlew”项识别为 cmdlet、函数、脚本文件或可运行程序名称...请检查名称拼写,如果包括路径,请确保路径正确,然后再试一次。.../可执行文件 执行命令 ; 三、解决方案 ---- 将要执行 gradlew app:dependencies --configuration releaseRuntimeClasspath 命令 ,

    4.3K10

    如何基于Paddle快速训练一个98%准确率抑郁文本预测模型?

    要注意,如果你Python3环境变量里程序名称Python,记得python3 xxx 语句改为Python xxx 如下进行安装: python -m pip install paddlepaddle...如果不是Vscode,请用Python写一个脚本,遍历文件每一行放入集合中进行去。比较简单,这里不赘述啦。 正则表达式去除脏数据,我这里数据量比较少,直接编辑器解决了: ?...此外,还需要将所有词语保存起来形成词典文件,每个词为一行。 并分别将训练集和测试集保存为 train.tsv 和 dev.tsv, 词典文件命名为word_dict.txt, 方便用于后续训练。...首先是run.sh里MODEL_PATH修改为你刚保存模型文件夹: ? 我这里最后一次训练保存文件夹是step_1200,因此填入step_1200,要依据自己情况填入。...5.预测 我们随意各取10条抑郁言论和普通言论,命名为test.txt存入senta_data文件夹中,输入以下命令进行预测: $ sh run.sh test 这二十条句子如下,前十条是抑郁言论,后十条是普通言论

    98110

    ios打包ipa四种实用方法(.app转.ipa)

    二、申请iOS发布证书(p12文件)   发布证书用于上架,证书有p12及mobileprovision两个文件,配套使用,先申请p12。...这里权限改为777即可chmod 777 FILE_NAME 然后重命名为.ipa mv xx.zip xx.ipa 4、解压修改后缀名(本文推荐) 这种方式是在xcode编译产生出...4.1 脚本自动生成ipa包 Step1: 新建文件夹命名为"distribute",新建 distribute.sh 脚本文件,内容为:(注意,脚本中所有appName请先替换成你真正app名称)...app文件放到distribute/文件夹下 这时文件夹目录结构是这样:(注意,脚本中所有appName请先替换成你真正app名称) distribute/distribute.sh distribute...; Step3: 在Payload文件夹上右键压缩成zip,然后生成 .zip 文件后缀改成 .ipa 即可。

    1.2K10

    ios打包ipa四种实用方法(.app转.ipa)

    二、申请iOS发布证书(p12文件)   发布证书用于上架,证书有p12及mobileprovision两个文件,配套使用,先申请p12。...这里权限改为777即可chmod 777 FILE_NAME 然后重命名为.ipa mv xx.zip xx.ipa 4、解压修改后缀名(本文推荐) 这种方式是在xcode编译产生出.app包基础上进行进一步处理...4.1 脚本自动生成ipa包 Step1: 新建文件夹命名为"distribute",新建 distribute.sh 脚本文件,内容为:(注意,脚本中所有appName请先替换成你真正app名称)...app文件放到distribute/文件夹下 这时文件夹目录结构是这样:(注意,脚本中所有appName请先替换成你真正app名称) distribute/distribute.sh distribute...; Step3: 在Payload文件夹上右键压缩成zip,然后生成 .zip 文件后缀改成 .ipa 即可。

    2.6K20

    CVE-2023-38831

    就会偷偷这两个文件连同源文件一起解压下来。 文件执行: 创建一个文件夹,随意命名,这里我命名为“ZX”(执行),在文件夹中准备以下内容....在ima文件夹中随意放置一个图片,同时图片命名为“test.jpg”. 在test.jpg文件夹中创建一个“test.jpg .cmd”程序(jpg后面有一个空格)。...内容为 test.jpg文件夹添加到压缩包,同时也ima文件夹图片添加进去: 打开压缩包。 发现图片没有变化,还是正常图片。 我们重命名图片,在图片名称后面加一个空格。...打开一个新终端,输入命令nc -lnvp 4444,启动端口监听。 打开一个win10虚拟机作为靶机,制作一个脚本文件: (ip地址为kaliip地址) 保存后文件后缀名改为bat。...之后在相同路径下保存一个py文件,内容为: 并把这个py文件命名为make.py。 最后准备一张名称为test.png图片,图片与上面两个文件放到同一个路径下。

    6910

    PyMuPDF 1.24.4 中文文档(十四)

    以下列表废弃名称映射到它们新版本。例如,属性pageCount在 Document 类中变为page_count。...还有一些不那么明显名称变更,例如方法getPNGdata在 Pixmap 类中被重命名为tobytes。 类名称(驼峰命名法)和包范围常量(大多数是大写)保持不变。...旧名称保持为废弃别名,直到 MuPDF 版本 1.19.0,并在随后版本中被删除 - 可能是版本 1.20.0,但这取决于上游决策(MuPDF)。...有一个实用程序脚本alias-changer.py可用于在您脚本中进行批量重命名。它接受单个文件文件夹作为参数。如果提供了一个文件夹,则会更改其所有 Python 文件及其子文件夹文件。...可以选择备份脚本。 对此页面有任何反馈吗? 本软件按原样提供,不附带任何明示或暗示担保。本软件根据许可证分发,除非根据该许可证条款明确授权,否则不得复制、修改或分发。

    9810

    机器学习程序猿在Linux猩球生存指南

    为了更好生存下来,他制作了这个基本生存指南。 指南适用范围: 这不是一个系统Linux终端命令介绍,只是我剪贴板上常用几个命令而已,适用于Linux轻度使用者。...] gg: 光标移动到文档开头 G: 光标移动到文档末尾 $: 光标移到移到本行尾 0: [数字] 光标移到本行行首 1.操作文件夹 pwd //显示当前所处路径 cd 文件夹名称 /...aa.txt a.txt //相当于把aa.txt文档重新命名为a.txt rm 文件 //删除文件 rm -r 文件夹 //删除文件夹【慎用...配合方向键很酸爽!】...//执行sh脚本 python test.py //执行python脚本 nohup sh test2118.sh> test.log & //后台执行脚本test.sh,并将输出写入到test.log...中 配合使用脚本: tail -f test.log //动态输出test.log内容,监控后台执行脚本执行过程 ps -ef | grep python //查看系统运行python程序

    1K40

    学习小组Day02笔记--RUI

    ;project为空目录名称; #注释,帮助理解 显示列表-ls ls 可以看删除后命令是否执行,当前目录下还有哪些子目录 删除—rm rm 1.txt #删除文件 rmdir project #...目录 cd - #返回刚刚目录 cd #返回主目录,即username 与pwd结合,看所处位置 新建脚本或文本文档并查看-vi & cat vi hello_world.txt # 先保证电脑切换到了英文输入法...#输出前3行 tail -n 2 hello_world.txt #输出后2行 复制文件-cp cp file1 file2 #复制文件1,并重命名为文件2 重命名 or 移动文件——mv mv file.../home/username #file移动到username下 mv file1 file2 #file1命名为file2 tips from 生信星球: 用tab可以补齐命令和文件名称...,如你想写huahua.txt,打出hua→按tab,只要文件在当前目录下,文件名称就是可以自动补齐,可避免代码拼写错误 马哥linux教程全套视频 http://man.linuxde.net

    49850

    生信学习小组Day2笔记-Chocolate Ice

    Linux中目录相当于windows文件夹,而路径就是目录层级位置,比如,home目录下有个biosoft,那么biosoft路径就是/home/biosoft。...个人电脑LinuxWindows10(1)设置-更新和安全-针对开发人员-启用开发人员模式(2)控制面板-控制面板-程序-启用或关闭windows功能-适用于Linuxwindows子系统(3)重启电脑...输入“ssh 用户名@ip地址”Linux基本操作用tab键(键盘上q前面那个)可以补齐命令和文件名称,比如你想写huahua.txt,可以打出hua,按tab键,只要文件在当前目录下,文件名称就是可以自动补齐...: copy作用:复制文件 (1)cp file1 file2:复制file1,命名为file2示例:图片9. mvmv: move作用:文件移入文件夹,或者重命名 (1)mv file1 ~.../tmp: file1文件移入home/tmp目录下 #mv 文件名 路径 (2)mv file1 file2: file1命名为file2示例:图片图片Day2总结图片

    57260

    生信学习小组Day 2-linux(L)

    Linux中目录相当于windows文件夹,而路径就是目录层级位置,比如,home目录下有个biosoft,那么biosoft路径就是/home/biosoft。.../p/8a340b103a41 Mac:在terminal页面操作:输入“ssh 用户名@ip地址” 3.Linux基本操作 用tab键(键盘上q前面那个)可以补齐命令和文件名称,比如你想写huahua.txt...,可以打出hua,按tab键,只要文件在当前目录下,文件名称就是可以自动补齐,可避免代码拼写错误。...示例: 图片 vi 作用:新建脚本或者文本文档 (1)vi aa.txt:新建名为aa文本文档,并打开编辑 (2)输入英文i,开始写下具体文本 (3)按Esc键退出编辑模式 (4)左下角输入:x,...作用:mv 文件名 路径:移动文件到某路径下 mv 文件名1 文件名2:文件名1命名为文件名2 示例: 图片

    70610

    学习小组Day2笔记--土

    图片 mkdir make directory 创建空目录 图片 ls 列表,显示目录中目录和文件 rm 删除文件--rm 删除空目录--rmdir 删除非空目录--rm -r(有空格) 图片 vi...新建脚本或者文本文档(vi是linux中文本编辑器) 图片 图片 图片 图片 cat head tail cat接文本文件名字,查看并直接文本文件内容输出到屏幕。...cp file1 file2 就是复制file1,命名为file2意思 图片 ##mv 文件移入文件夹,或者重命名 mv file 路径是移动file到某路径下 mv file1 file2是file1...命名为file2 图片 小技巧:用tab键(键盘上q前面那个)可以补齐命令和文件名称,比如你想写huahua.txt,可以打出hua,按tab键,只要文件在当前目录下,文件名称就是可以自动补齐,可避免代码拼写错误...(生信星球)推荐一个网址:(http://man.linuxde.net) 解决以下几个问题 ls输出是横向列表,怎样输出长格式列表(提示:搜索ls) 如何查看长格式列表中文件大小?

    13700
    领券