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实现随机复制若干个文件到新目录的更多相关文章

  1. Python 批量修改文件名并移动文件到指定目录

    # -*- coding: utf-8 -*- import os, sys,re,shutil from nt import chdir #读取中文路径 u'' path=u"D:\\zh ...

  2. bat脚本实现复制特定后缀文件到其他目录

    @echo off for /r %%a in (*.txt) do copy %%a D:\1 pause 1.for /r主要用于搜索指定路径及其所有子目录中符合要求的文件(/r后如果没有指定目录 ...

  3. vs2015中将复制过来的文件夹显示目录文件

    先将文件夹和文件复制到VS程序所在的位置,点击解决方案资源管理器上的“显示所有文件”按纽,展开这个文件夹,这样你就可以看到这个文件或者文件夹了,这时,这个文件或者文件夹是虚线构成的.你右击这个文件或者 ...

  4. 【Python基础】之不同的文件在不同目录下导入指定模块的方法

    如下图三个文件的目录路径 – project     |–  1     |    |–  2     |    |    |–  3    |    |    |    |– owen.py     ...

  5. Python语法速查: 12. 文件与输入输出

    返回目录 (1)文件基本操作 ● 文件常用操作 内置函数或方法 描述 open(name [,mode [,buffering]]) 内置函数.用来打开文件,返回一个文件对象(file对象).详见下述 ...

  6. python 解压、复制、删除 文件

    一.python3解压文件 1.python 解压文件代码示例 如下代码主要实现zip.rar.tar.tar.gz四种格式的压缩文件的解压 def unzip_file(src_file, dst_ ...

  7. Python学习系列(五)(文件操作及其字典)

    Python学习系列(五)(文件操作及其字典) Python学习系列(四)(列表及其函数) 一.文件操作 1,读文件      在以'r'读模式打开文件以后可以调用read函数一次性将文件内容全部读出 ...

  8. python使用xlrd模块读写Excel文件的方法

    本文实例讲述了python使用xlrd模块读写Excel文件的方法.分享给大家供大家参考.具体如下: 一.安装xlrd模块 到python官网下载http://pypi.python.org/pypi ...

  9. Python 生成随机验证码

    Python生成随机验证码  Python生成随机验证码,需要使用PIL模块. 安装: 1 pip3 install pillow 基本使用 1. 创建图片 1 2 3 4 5 6 7 8 9 fro ...

随机推荐

  1. Hello-Annie

    Annie theme Annie是一个简单的Hexo博客主题,如果你喜欢散文.诗歌.小说......那么它可能合你心意! ☞预览-1,☞预览-2 Features 文艺.优雅.简洁的博客主题 页头随 ...

  2. 如何满足EN50128软件安全认证标准?

    导语 EN 50128是为铁路行业的特定需求量身定制的功能安全标准.其标题为“铁路应用—通信,信号和处理系统—铁路控制和防护系统软件”.遵守该标准的要求对于铁路软件开发是至关重要的.因此,必须了解什么 ...

  3. Mac包管理神器:Home-brew

    最近看到一个大神修改的Homebrew国内脚本,安装非常方便,以前使用国外的经常下载不下来,这个感觉是非常快的. Homebrew 国内自动安装脚本 ,修改原脚本中的 clone 操作为“浅拷贝”(- ...

  4. 基于.NetCore3.1系列 —— 日志记录之初识Serilog

    一.前言 对内置日志系统的整体实现进行了介绍之后,可以通过使用内置记录器来实现日志的输出路径.而在实际项目开发中,使用第三方日志框架(如: Log4Net.NLog.Loggr.Serilog.Sen ...

  5. go语言基础实例

    一:变量 1)变量声明 func main() { var v1 int var v2 int //一次声明多个变量 var ( v3 int v4 int ) //变量最开始会有一个零值 fmt.P ...

  6. 【Flutter 实战】17篇动画系列文章带你走进自定义动画

    老孟导读:Flutter 动画系列文章分为三部分:基础原理和核心概念.系统动画组件.8篇自定义动画案例,共17篇. 动画核心概念 在开发App的过程中,自定义动画必不可少,Flutter 中想要自定义 ...

  7. Python 逆向抓取 APP 数据

    今天继续给大伙分享一下 Python 爬虫的教程,这次主要涉及到的是关于某 APP 的逆向分析并抓取数据,关于 APP 的反爬会麻烦一些,比如 Android 端的代码写完一般会进行打包并混淆加密加固 ...

  8. MSP430-LED中断闪烁代码详解

    使用MSP430F149的开发板,首先对LED闪烁灯的例程进行讲解,然后下边是自己写的,将部分代码写入了新建的led.c程序中 #include  <msp430x14x.h>       ...

  9. 小程序开发-block组件的使用

    微信小程序中,block不是一个组件,而是一个包装元素,不会在页面中做任何渲染. 使用情况:条件渲染 wx:if 因为 wx:if 是一个控制属性,需要将它添加到一个标签/组件上,用于控制隐藏与显示. ...

  10. C001:打印勾

    程序: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { printf(" *\n"); p ...