10行Python代码助你整理杂乱无章的文件
作者:派森酱 发布时间:2021-03-08 21:11:12
标签:Python,整理,文件
酱子们大家好,今天继续分享 Python 小工具
今天的小程序,可以一键完成文件整理,一起来看看吧!
按照文件格式整理
具体来说就是不同的文件后缀名称放置到不同的文件夹当中
今天我们只需要使用 os 和 shutil 两个库就足够了。os 是 Python 内置模块,用于操作系统的相关功能,shutil 是用来进行文件移动等操作的。
首先我们先来看几个获取文件后缀的方法
获取文件后缀
方法1:
直接通过 os 库实现
filename = os.path.splitext('1.jpg')
Output:
('1', '.jpg')
得到一个包含文件名和后缀名的元组,此时再想获得文件后缀就很容易了吧~
方法2:
可以直接使用字符串方法 endwith,简单明了
file = "1.jpg".endswith(".jpg")
如果结尾字符是 “.jpg” 的话,那么该方法的返回值则为 True,以此我们可以判断文件的后缀名
方法3:
使用字符串的 split 方法,通过切分来获取后缀名称
file1 = "1.jpg".split('.')
这样可以得到一个列表,第二个元素就是后缀名
接下来我们就可以创建文件夹和拷贝文件了,分别用 os.mkdir 和 shutil.copy 来操作
代码如下:
import os
import shutil
files = os.listdir(".")
for f in files:
if os.path.isfile(f) and not f.startswith('.'):
folder_name = os.path.splitext(f)[-1]
folder_name = folder_name.split(".")[-1]
print(folder_name)
if not os.path.exists(folder_name):
os.mkdir(folder_name)
shutil.copy(f, folder_name)
else:
shutil.copy(f, folder_name)
通过上面的代码,我们就可以在当前目录下顺利地整理文件了
按照文件大小整理
当然有的时候,我们同样希望把大小类似的文件整理到一个文件夹当中,可以通过 os 库的 getsize 函数来获取
print(os.path.getsize("1.jpg"))
这样就可以得到该文件的大小,单位是 KB
完整代码如下:
import os
import shutil
files = os.listdir(".")
for f in files:
if os.path.isfile(f) and not f.startswith('.'):
size = os.path.getsize(f)
if size < 1000:
folder_name = "Under_one_MB"
if not os.path.exists(folder_name):
os.mkdir(folder_name)
shutil.copy(f, folder_name)
else:
shutil.copy(f, folder_name)
elif 10000 <= size < 2000:
folder_name = "Under_two_MB"
if not os.path.exists(folder_name):
os.mkdir(folder_name)
shutil.copy(f, folder_name)
else:
shutil.copy(f, folder_name)
来源:https://mp.weixin.qq.com/s/2i73Zt8ZUztHlii-uLQJfw
0
投稿
猜你喜欢
- python中有很多字符串连接方式,今天在写代码,顺便总结一下:最原始的字符串连接方式:str1 + str2python 新字符串连接语法
- 今天彬Go将和大家一起讨论网页设计趋势中很重要的环节,那就是”勾引”用户的按钮。所谓”勾引”用户的按钮,其实对于Web设计师来说,就是如何设
- 例子class A(object): def foo(self,x): print "exe
- 以下测试用于去除任何字符串中连线的分隔符 代码如下:--去除字符串中连续的分隔符 declare @str nvarchar(200) de
- 本文实例讲述了Python实现的爬取百度文库功能。分享给大家供大家参考,具体如下:# -*- coding: utf-8 -*-from s
- 1、实现效果2、实现步骤模块导入import os,sys,timefrom PyQt5 import QtCore,QtWidgets,Q
- 本文实例讲述了Python实现桶排序与快速排序算法结合应用的方法。分享给大家供大家参考,具体如下:#-*- coding: UTF-8 -*
- 前两天在做一个站内版的企搜引擎,发现某些站点可以链接站点内容。。奇怪之下看了看,原来是按照数据库ID的自动编号规律进行链接的~~闲暇之余弄了
- 准备在以后制作的网站中尝试一些变化,比如:先提交内容,后提示注册/登陆。感觉这样可以绑架更多用户……不想注册再发言?那就先让你上钩发言,然后
- 描述max() 方法返回给定参数的最大值,参数可以为序列。语法以下是 max() 方法的语法:max( x, y, z, .... )参数x
- 很简单,只需建立一个worksheet和Excel相关的信息就可以了具体代码见下:<%set xlApp =&nb
- 这是我以前发表在经典论坛的帖子,现在转贴回来。仿淘宝网站的导航效果。此方法有几个优点:根据字数自适应项目长度不同的项目使用不同的颜色来区分无
- 大家一定使用过 phpmyadmin 里面的数据库导入,导出功能,非常方便。但是在实际应用中,我发现如下几个问题:1、数据库超过一定尺寸,比
- 在ASP.NET2.0通过SMTP的验证发送EMAIL ,代码如下:’Create a new MailMes
- IE8主页http://www.microsoft.com/windows/products/winfamily/ie/ie8/defaul
- 在网站开发过程中,可能需要用PHP实现验证邮箱格式是否正确,那么我们就可以通过PHP中filter_var函数来实现。下面我们就结合具体的代
- 这个类主要解决在类型转换时,如果直接使用类型转换函数,会因为变量为空或者格式不对而导致程序报错,而这种报错在大多数情况下是允许的.例如要转换
- 本文实例讲述了php测试kafka项目。分享给大家供大家参考,具体如下:概述Kafka是最初由Linkedin公司开发,是一个分布式、分区的
- 浏览器的出现互联网的出现是人类信息交流方式的一次划时代的革命,在这场革命中有两个技术对互联网的发展起到了决定性的作用:一个技术带来的人类信息
- str()将参数转换为字符串类型a = 26print('我有'+str(a)+'个苹果')输出:我有26个