python实现随机复制若干个文件到新目录
python实现随机复制若干个文件到新目录
1说明
1.1 目的
随机选择一个文件下的若干个文件,并将文件复制到新文件夹下
1.2 要求
需要将random_select_and_copy_file.py文件放置在父目录下,并选定相应的文件夹,比如需要选择train文件夹下的若干个图片
目录结构

图片文件:

注意:并且默认新生成存放文件的目录为new_train,所以该路径下不能有已存在new_train目录
2代码实现
from shutil import copyfile
import random
import os
def random_select_and_copy_files(dir_name=None, select_number=0):
'''
随机从dir_name目录中选择select_number个文件并复制到new_dir_name目录下
:param dir_name: 待选择文件的目录名
:param select_number: 随机选择的文件数量
:return: None
'''
# 处理输入目录名异常
try:
dir_name is None or dir_name not in os.listdir(os.getcwd())
except:
print("输入目录名错误")
dir_path = os.path.join(os.getcwd(), dir_name) # 获取文件目录路径
files_list = os.listdir(dir_path) # 生成文件名列表
files_number = len(files_list)
# 处理输入数量异常
try:
select_number > files_number
except:
print("选择文件超过原本数量")
generate_list = random.sample(files_list, select_number) # 随机选取文件
# 生成存放文件新目录,默认以new开头
new_dir_path = os.path.join(os.getcwd(), 'new_'+dir_name)
os.mkdir(new_dir_path)
success_number = 0 # 记录成功数量
success_list = [] # 记录成功文件
# 复制文件并记录
for file_name in generate_list:
orl_file_path = os.path.join(dir_path, file_name)
new_file_path = os.path.join(new_dir_path, file_name)
copyfile(orl_file_path, new_file_path) # 复制文件
success_list.append(file_name)
success_number += 1
if success_number % 100 == 0:
print("success", success_number)
# 给出提示信息并给出未成功文件
if success_number == select_number:
print("all", select_number, "finish")
else:
print("unfinished")
error_list = []
for file_name in files_list:
if file_name not in success_list:
error_list.append(file_name)
print(error_list, 'error', sep='\n')
if __name__ == "__main__":
random_select_and_copy_files("train", 10)
3效果
生成新目录,并且随机拷贝若干个文件到新目录

python实现随机复制若干个文件到新目录的更多相关文章
- Python 批量修改文件名并移动文件到指定目录
# -*- coding: utf-8 -*- import os, sys,re,shutil from nt import chdir #读取中文路径 u'' path=u"D:\\zh ...
- bat脚本实现复制特定后缀文件到其他目录
@echo off for /r %%a in (*.txt) do copy %%a D:\1 pause 1.for /r主要用于搜索指定路径及其所有子目录中符合要求的文件(/r后如果没有指定目录 ...
- vs2015中将复制过来的文件夹显示目录文件
先将文件夹和文件复制到VS程序所在的位置,点击解决方案资源管理器上的“显示所有文件”按纽,展开这个文件夹,这样你就可以看到这个文件或者文件夹了,这时,这个文件或者文件夹是虚线构成的.你右击这个文件或者 ...
- 【Python基础】之不同的文件在不同目录下导入指定模块的方法
如下图三个文件的目录路径 – project |– 1 | |– 2 | | |– 3 | | | |– owen.py ...
- Python语法速查: 12. 文件与输入输出
返回目录 (1)文件基本操作 ● 文件常用操作 内置函数或方法 描述 open(name [,mode [,buffering]]) 内置函数.用来打开文件,返回一个文件对象(file对象).详见下述 ...
- python 解压、复制、删除 文件
一.python3解压文件 1.python 解压文件代码示例 如下代码主要实现zip.rar.tar.tar.gz四种格式的压缩文件的解压 def unzip_file(src_file, dst_ ...
- Python学习系列(五)(文件操作及其字典)
Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件 在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...
- python使用xlrd模块读写Excel文件的方法
本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...
- Python 生成随机验证码
Python生成随机验证码 Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 fro ...
随机推荐
- WordCount (Python)
Github项目地址:https://github.com/w1036933220/WordCount 一.解题思路 把项目需求理清楚,画一个思维导图 考虑各部分功能所需要的大概实现思路 然后完成了计 ...
- On the Convergence of FedAvg on Non-IID Data
郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! arXiv:1907.02189v2 [stat.ML] 8 Oct 2019 Abstract 联邦学习使得大量的边缘计算设备在不共享数 ...
- Linux命令大纲
LINUX服务器,广泛用于服务器的操作系统.本文以centos作为基础大概记录下自己的心得. 一.文件/目录的增删改查 1.增加 touch filename > filename mkdir ...
- 重拾Java Web应用的基础体系结构
目录 一.背景 二.Web应用 2.1 HTML 2.2 HTTP 2.3 URL 2.4 Servlet 2.4.1 编写第一个Servlet程序 2.5 JSP 2.6 容器 2.7 URL映射到 ...
- CSS3动画之animation-timing-function中的stepshan shu
1.概念 animation-timing-function是规定动画的速度曲线,一般使用的是cubic-bezier() 控制动画曲线的,属性值一般有ease/ease-in/ease-out等,而 ...
- Flyway版本化管理数据库脚本
假如我们有一个叫shiny的项目,它是由一个程序Shiny-Server 和一个数据库 Shiny-DB组成的; 简单结构图如下: 但是很多时候,现实开发团队是这样的: 我们的项目shiny项目的运行 ...
- Mysql常用的一些命令
1.登录Mysql数据库, 打开终端命令输入窗口,输入命令:mysql -u <账户名,一般是root> -p <密码>. 2.显示所有的数据库: show databases ...
- springboot AOP实战
目录 AOP实战 maven依赖 定义切面 采用扫描类的方式 采用注解的方式 通知 前置通知 后置通知 返回通知 异常通知 环绕通知 JoinPoint 获取切点处的注解 git AOP实战 mave ...
- termux 进阶
直接正题. 1.优化键位: mkdir $HOME/.termux echo "extra-keys = [['ESC','/','-','HOME','UP','END','PGUP'], ...
- SpringCloud系列之分布式配置中心极速入门与实践
SpringCloud系列之分布式配置中心极速入门与实践 @ 目录 1.分布式配置中心简介 2.什么是SpringCloud Config? 3.例子实验环境准备 4.Config Server代码实 ...