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


猜你喜欢
- 在使用python爬取网站信息时,查看爬取完后的数据发现,数据并没有被爬取下来,这是因为网站中有UA这种请求载体的身份标识,如果不是基于某一
- 在Python中,您可以使用inspect模块来查看一个函数的参数信息。inspect模块提供了许多用于检查对象的工具函数,其中包括用于获取
- 1、在MySQL中要修改全局(global)变量,有两种方法:方法一,修改my.ini配置文件,如果要设置全局变量最简单的方式是在my.in
- vue-amap是对高德地图JS API进行封装的、适用于vue项目的地图组件库。在笔者开发的很多项目中都有用到,相比直接使用高德地图JS
- 看代码吧~def test(): return 1,2a, b = test()1 2a, _ = test()1
- 如下所示:>>> import pandas as pd>>> import numpy as np&g
- 如下所示:#-*- coding: utf-8 -*-#code:myhaspl@qq.com#12-1.pyimport sysreloa
- <!-- -----------[test]表生成脚本---------------
- 看到代码里面有这个1 class ResNeXt101(nn.Module): 2 def __init__(se
- 前言本文提供将视频按照自定义尺寸进行裁剪的工具方法,一如既往的实用主义。环境依赖ffmpeg环境安装,可以参考文章:windows ffmp
- 1.创建主键语法 ALTER TABLE table_name ADD CONSTRAINT pk_name PRIMARY KEY(列名)
- 很多开发人员在使用MySQL时经常会在部分列上进行函数计算等,导致无法走索引,在数据量大的时候,查询效率低下。针对此种情况本文从MySQL5
- 前几日在使用MySQL数据库的时候,出现了一处保存,故作此记录✍问题描述下面是我这样exam表的结构mysql> desc exam;
- 环境:python3 + unittest + requestsExcel管理测试用例,HTMLTestRunner生成测试报告测试完成后邮
- 这是一家游戏公司,他面试通过后 擅长的机试却没答出来,不过还是被录用了。这道题内容大概这样有条蛇它长度不固定,蛇头朝北顺时针盘旋着,请打印出
- 之前写了一篇flask开发环境搭建,今天继续,进行一个实战小项目-blog系统。blog系统很简单,只有一个页面,然后麻雀虽小五脏俱全。这里
- 安装先下载源码,地址:ps://pypi.python.org/pypi/IPy/">https://pypi.python
- 第一种:拼接字符串,可以解决问题,但是为了避免sql注入,不建议这样写还是看看第二种:使用.format()函数,很多时候我都是使用这个函数
- 如下所示:import numpy as npa = np.array([[1,2,3],[4,5,6],[7,8,9]])b = np.a
- MySQL行转列操作 所谓的行转列操作,就是将一个表的行信息转化为列信息,说着可能比较笼统,这里先举个例