python实现打乱文件夹里的文件顺序/文件随机排列

最近因为一些图片文件保持新鲜感(嘻嘻~),所以希望图片能够随机排列,我发现通过window10的文件资源管理器无法实现随机排序,因为几万张图片总有几十张图片的属性是极其相似的。此blog通过python实现图片(或者其他文件)的随机排序,唯一的坏处就是排序后的文件名会被修改。

废话不多说,直接上干货,以下是完整可运行代码!但是小伙伴们注意可能需要修改若干个地方!

使用方法:创建一个空白的txt文件到image文件夹的同级目录下,重命名该txt文件为“a.txt”,然后将下面代码复制到这个txt文件,再修改该txt文件为“a.py”,最后在该目录下打开如下图所示的shell窗口,最后直接输入“python a.py”(没有安装python请自行百度:如何安装python),然后等待运行完毕,如果文件比较多或者文件比较大可能会比较慢,耐心等待。

请添加图片描述

import os
import random
import re
import shutil

# 1 读取文件列表
image_dir = r'image/' # 一开始存放有图片的文件夹,你需要修改成你的文件夹名字
img_name_list = os.listdir(image_dir)
print(img_name_list[:5])

# 2 创建一个目标文件夹
result_dir = r'result/' # 目标文件夹(最终存放乱序后的文件夹),会自动创建
if not os.path.exists(result_dir):
    os.makedirs(result_dir)
    print(f'创建文件夹{result_dir}成功!')

# 3 创建随机数
random_len = len(img_name_list)
img_index = [i for i in range(random_len)]
random.shuffle(img_index)
# img_index

# 开始转移每个文件
for i, img in enumerate(img_name_list):
    dot_index = img.find('.')
    if dot_index > 0:
        img_name = str(img_index[i]) + img[dot_index:]
        shutil.copyfile(image_dir + img, result_dir + img_name) # 如果你的磁盘不够大,那么这个copyfile要改成move,但是此时需要注意备份好原来的文件夹里的文件!

注:以上可以打乱任何类型的文件!

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值