在学校时,从六维空间下载了一些电子书,文学类全英文mobi格式的,有24G多。放在硬盘有段时间了,比较占地方,想移到移动硬盘里去。文件的目录格式如下:

第一级目录是按作者名排序的文件夹,第二级目录是以书的名字命名的文件夹,第三级就是书了。

讲道理的话我直接剪切,粘贴就结束了,可是,偏偏就出问题了,粘贴的时候提示我文件名太长,不能粘贴。然后就搜索了一下,Windows文件的路径最长为255字符,这里由于书名和第二级文件夹目录名字较长,超过了限制,导致无法复制过去。

所以才有了这篇文章。

计划是把第二级文件夹的名字缩短,这样以后搜索书名的时候还可以检索到相应的书目。

下面直接上代码了,代码写的很糙,看下思路就行了。

import os

dir = os.getcwd() #获取当前目录

subdir = os.listdir(dir) #遍历当前目录下所有文件,也就是获取第一级作者名字所有文件夹

for i in subdir:

path = os.path.join(dir,i) #把第一级目录添加到路径中

if os.path.isdir(path): #如果path仍然是文件夹,下面就继续遍历出其中的文件,

end_dir = os.listdir(path) #实际上这步判断可以不要的,因为我知道目录结构。

for i in range(len(end_dir)): #一些作者下面可能会有多本书,所以再一次遍历得到二级文件夹目录

newname = end_dir[i][0:50] #这里缩短二级文件夹的名字,取前50个字符。

os.rename(os.path.join(path,end_dir[i]),os.path.join(path,newname)) #用新名字取代旧名字

到这里,名字就改完了,我顺利的把文件移到了硬盘。

然后呢,我在想,24G,有多少本书呢,那么问题来了,

代码很糙,凑合看吧,上代码。这段代码是通用的,可以直接放到任何地方检查文件数。

import os

result = []

def get_all(cwd):

get_dir = os.listdir(cwd) #遍历当前目录,获取文件列表

for i in get_dir:

sub_dir = os.path.join(cwd,i) # 把第一步获取的文件加入路径

if os.path.isdir(sub_dir): #如果当前仍然是文件夹,递归调用

get_all(sub_dir)

else:

ax = os.path.basename(sub_dir) #如果当前路径不是文件夹,则把文件名放入列表

result.append(ax)

print(len(result)) #对列表计数

if __name__ == "__main__":

cur_path = os.getcwd() #当前目录

get_all(cur_path)

最后,运行后得到结果15108,然后可以结合上篇文章,把书名导入到Excel表中,方便查询。

python下载文件并改名_Python遍历文件夹并批量改名相关推荐

  1. python 打开文件夹所有文件_python遍历文件夹下所有文件

    python遍历文件夹下所有文件的方法:首先打开相应的代码文件:然后通过"for f in files:print(os.path.join(root, f))"方式遍历所有的文件 ...

  2. python遍历读取文件夹下所有文件内容_python遍历文件夹下所有文件

    python遍历文件夹下所有文件的方法:首先打开相应的代码文件:然后通过"for f in files:print(os.path.join(root, f))"方式遍历所有的文件 ...

  3. 使用python下载加密的流媒体m3u8视频文件,获取电影资源

    使用python下载加密的流媒体m3u8视频文件,获取电影资源 m3u8简介 代码示例 获取文件名与m3u8地址 媒体序列解密 视频序列片段下载 完整代码 后记 m3u8简介 M3U8是Unicode ...

  4. python os.walk 指定遍历深度_python遍历文件夹,指定遍历深度与忽略目录的方法

    背景 需要在文件夹中搜索某一文件,找到后返回此文件所在目录.用最常规的os.listdir()方式实现了一版,但执行时报错:递归超过最大深度.于是自己添加了点功能,之所有写此函数是为了让它适应不同的项 ...

  5. python遍历文件夹下所有文件大小_python遍历文件夹读取文件大小 | 学步园

    闲来无事,写了个小程序删除内存卡中大于50m的文件 # filename  itertaorfilefolder import os import os.path filePath = raw_inp ...

  6. python遍历文件夹下所有文件大小_python遍历文件夹——两种遍历本地文件记录文件夹个数、文件数及文件大小的方法...

    这两个函数的功能:得到给定目录的文件夹个数.文件数,以及文件大小 walkFolders函数没有用到os.walk函数,是自己递归调用的:walkfunc函数用到了os.walk函数,方便了很多. i ...

  7. python循环遍历所有目录_python 遍历文件夹

    一.os.walk() os.walk(top, topdown=True, οnerrοr=None, followlinks=False) 可以得到一个三元tupple(dirpath, dirn ...

  8. python的lib文件夹_python遍历文件夹os.path与pathlib

    首先我们来一个需求,这个函数接受文件夹的名称作为输入参数,返回该文件夹中文件的路径,以及其包含文件夹中文件的路径. def print_dir_contents(sPath): import os f ...

  9. python如何遍历文件夹中的所有图片_python遍历文件夹中的所有jpg文件

    python发现文件夹下所有的jpg文件,并且安装文件排放的顺序输出 glob模块是最简单的模块之一,内容非常少.用它可以查找符合特定规则的文件路径名.跟使用windows下的文件搜索差不多.查找文件 ...

最新文章

  1. 在线作图|如何画韦恩图(包含upset图)
  2. Mac下获取AppStore安装包文件路径
  3. BZOJ1003: [ZJOI2006]物流运输
  4. visual studio输入法打不了中文_目前比较满意的手机输入法方案:Gboard + 搜狗词库...
  5. 禁用浏览器滚动条的解决方案
  6. sphinx随笔记了一下
  7. velocity模板的语法简要汇总
  8. InfluxDB 2.0 之Flux语法篇
  9. 【机器视觉学习笔记】伽马变换(C++)
  10. FxCAD 实验三 实现对象的【属性】事件
  11. MySQL初识-架构-安装-初始化-连接-管理工具-数据文件
  12. 在spring配置中出现的问题,解决方案
  13. django 1.8 官方文档翻译: 3-3-3 文件储存API
  14. Spring MVC学习总结(3)——Spring3 MVC详解
  15. android显示view在屏幕中间,android – 如何在屏幕中央显示imageview?
  16. Active Directory Get User's groups using LDAP
  17. js读取服务器xml文件,js读取XML文件 JS读写XML文件
  18. 为软件添加全网排行榜
  19. [Bug]Superset通过pyhive连接Spark SQL表名获取失败
  20. 企业研发人员配备比例_中小IT企业项目团队人员配置管理

热门文章

  1. 使用oracle sql profile固定执行计划
  2. nginx.conf配置文件简单说明
  3. 生产批量检查web url并通过手机邮件报警案例
  4. linux内核killler,Linux内核参数overcommit_memory和OOM killer介绍
  5. react-native 第三方库
  6. ndarray python 映射_191123 使用 Pybind11 和 OpenCV 创建 Python 库
  7. Java Swing Mysql学生选课系统
  8. 作业帮:给定一个整数数组,找出其中两个数相加等于目标值(去重set)
  9. 是什么影响了数据库索引选型?
  10. js正则表达式匹配字符串与优化过程