内容涉及:关键字定位,列表去重复,路径组装,文件夹创建,文件拷贝,字符串分割

list.txt的内容为包含关键字的文件路径,如:关键字 ’181‘

org/20190523/1/2019052320196231816923IMG039x030.JPG_n_1_1375_220_1475_320.png
org/20190523/7/2019052320196171812302IMG007x030.JPG_p_7_287_191_387_291.png
... ...

import os
import numpy as np
import re
from shutil import copyfile def getlist(path,name):
listall = []
for n in open(path):
location = re.search(name, n) #定位关键字
bingli_Id = n[location.start():location.start()+7] #找到关键字后面7位长度字符
listall.append(bingli_Id) #添加到列表中
return set(listall) #去除重复内容 def mkdir(file1, bingId): #建立文件夹
if not os.path.exists(file1):
os.mkdir(file1) #建立一级目录
for n in bingId:
path = os.path.join(file1, n)
path_1 = os.path.join(path, str(1)) #组装三级目录,此时我知道三级目录的内容,所以直接设置了常量
path_7 = os.path.join(path, str(7))
if not os.path.exists(path): #建立目录
os.mkdir(path)
if not os.path.exists(path_1):
os.mkdir(path_1)
if not os.path.exists(path_7):
os.mkdir(path_7) def copytoflods(path_all_list, name, file1):
for n in open(path_all_list):
location = re.search(name, n)
bingId = n[location.start():location.start()+7]
arr = n.split('_') #以‘_’分割字符串
type_ = arr[2] # 取第3个元素
root = os.path.join(file1, bingId, type_, arr[0][-20:]+ '.png') #组装文件路径
copyfile(n[:-1], root) #n[:-1]:便捷地去除换行符号 if __name__ == '__main__':
listall = getlist('./list.txt','181') #第一个参数为需要处理的文件路径列表, 181为关键字
mkdir('dataset', listall)
copytoflods('./list.txt','181', 'dataset') #dataset为一级目录名

  

python根据列表创建文件夹,拷贝指定文件的更多相关文章

  1. C# 拷贝文件夹到指定文件夹并更改文件夹名称

    using System; using System.Collections.Generic; using System.Text; namespace ClientPrintServer.Tools ...

  2. IO流(9)复制指定文件夹下指定文件到目的文件夹,并改名

    import java.io.BufferedInputStream;import java.io.BufferedOutputStream;import java.io.File;import ja ...

  3. c#拷贝整个文件夹到指定文件夹下(非递归)

    public static void CopyEntireDir(string sourcePath, string destPath) { //Now Create all of the direc ...

  4. 基于Python——实现两个文件夹中的文件拷贝

    [背景]当复制一个文件夹中的某文件到另一个文件夹中时是一件很容易的事情,可是如果存在很多文件夹中的文件需要一一拷贝,就会变的很繁琐,稍有不慎就会遗漏,今天就用Python来解决这个问题—— [代码实现 ...

  5. python 实现统计ftp服务器指定目录下文件夹数目、文件数目及所有文件大小

    本次主要为满足应用方核对上传到ftp服务器的文件是否缺漏. 主要要求:指定目录下,文件夹数目/文件数目/所有文件大小,类似Windows如下功能: 模块介绍: from ftplib import F ...

  6. Delphi - 本地路径的创建、清空本地指定文件夹下的文件

    本地路径的创建 在做下载操作时,我们一般先把文件下载到本地指定的路径下,然后再做其他使用. 为了防止程序出现异常,我们通常需要先判断本地是否存在指定的路径. 以C盘Tmp文件夹为例,我们可以这样做,代 ...

  7. python 批量创建文件及文件夹(文件夹里再创文件)

    python 批量创建文件及文件夹(文件夹里再创文件)思路:文件建到哪>文件名字叫啥>创建文件夹>去新建的文件下>新建文件>给文件里边写东西>写个反馈给控制台> ...

  8. python 将指定文件夹中的指定文件放入指定文件夹中

    import os import shutil import re #获取指定文件中文件名 def get_filename(filetype): name =[] final_name_list = ...

  9. 创建批处理文件.bat文件(删除指定文件夹下的文件及文件夹并循环)

    1.针对仅仅是删除文件夹下的文件的操作:使用del命令,单纯的删除文件操作,如下:del /f /s /q C:\Users\dell\AppData\Local\Temp\*.* 2.删除文件夹操作 ...

  10. Python基础之创建文件夹与删除文件夹。

    参考链接:https://blog.csdn.net/weixin_43826242/article/details/87101436 创建目录结构 # 创建文件目录结构 def create_fol ...

随机推荐

  1. MySQL不香吗,清华架构师告诉你为什么还要有noSQL?

    强烈推荐观看: 阿里P8架构师谈(数据库系列):NoSQL使用场景和选型比较,以及与SQL的区别_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili​www.bilibili.com noSQL的大概 ...

  2. Alpha冲刺 —— 5.3

    这个作业属于哪个课程 软件工程 这个作业要求在哪里 团队作业第五次--Alpha冲刺 这个作业的目标 Alpha冲刺 作业正文 正文 github链接 项目地址 其他参考文献 无 一.会议内容 1.展 ...

  3. 【SpringMVC】使用三层架构实现登录,注册。(下篇)

    上篇写了构思与界面层,本篇写一下业务逻辑层.数据访问层 目录 业务逻辑层 包:pojo 用户类(JavaBean):User public class User { private String us ...

  4. webpack+vue2.0项目 (一) vue-cli脚手架

    很早以前就开始看vue2.0和webpack,但总是留不下深刻的印象,一直缺少一个可以贯通的项目,而且工作也没有时间,最近辞职在家,从网上找了个项目,写了大概八天,踩了无数的坑啊!! 下载的项目包括, ...

  5. Java实现 LeetCode 389 找不同

    389. 找不同 给定两个字符串 s 和 t,它们只包含小写字母. 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母. 请找出在 t 中被添加的字母. 示例: 输入: s = " ...

  6. Java实现 LeetCode 374 猜数字大小

    374. 猜数字大小 我们正在玩一个猜数字游戏. 游戏规则如下: 我从 1 到 n 选择一个数字. 你需要猜我选择了哪个数字. 每次你猜错了,我会告诉你这个数字是大了还是小了. 你调用一个预先定义好的 ...

  7. Java 是如何实现跨平台的?

    Java 是如何实现跨平台的? 注意:跨平台的是 Java 程序,而不是 JVM.JVM 是用 C/C++ 开发的,是编译后的机器码,不能跨平台,不同平台下需要安装不同版本的 JVM 答:我们编写的 ...

  8. Kubernetes日志的6个最佳实践

    本文转自Rancher Labs Kubernetes可以帮助管理部署在Pod中的上百个容器的生命周期.它是高度分布式的并且各个部分是动态的.一个已经实现的Kubernetes环境通常涉及带有集群和节 ...

  9. 2个线程A-B-A-B或者B-A-B-A循环输出

    代码: /** * 两个线程循环打印输出a-b-a-b */ public class AandBforTOthread { private static Object o = new Object( ...

  10. Php7安装pdo_pgsql,pgsql扩展

    通过地址http://pecl.php.net/package/PDO_PGSQL下载PDO扩展包 找到php自带的ext目录里的pgsql库 第二步: 切换目录到pgsql 第三步: 找到phpiz ...