python 复制文件 win32clipboard python 复制文件覆盖_python pexels

题图:pexels

业务场景

假设有这么一个场景,要用百度飞浆做深度学习,学习的基础源是照片,大家都知道深度学习是需要大量的基础数据,而我们如果要进行深度学习实战,就需要大量的数据。

但是又不可能人工手动去复制,或者扒几十万上千万的素材,可能一天下来,能保存个几千张就差不多了,但是离理想的数据量相差甚远。

这时候,你可能从脑海中冒出的方式有几种:

  1. 在服务器上通过cp命令进行复制;
  2. 写个Java简单程序去复制;
  3. 使用python程序去复制;

以上几种方法都可行,就看哪个更适合你,我当时的需求是,需要快速的复制出1亿以上的数据量,显然排除了方法一,方法二是不是也可以满足呢,因为作者自身就是Java出身,写起来也快,但最后自己否决了

原因是:

一方面需要配置java环境,另一方面是配置会繁琐,想有没有直接写个脚本就可以执行的?

最后,想到了python,经常在IT技术博客网站上各种广告、帖子,把python吹的天花乱坠,正好借这个机会领略一番它的魅力。

环境准备

  • python 环境
  • linux 服务器一台
  • 文件准备

因为我的服务器是Ubuntu,python已自带,其他的服务器可以百度找下配置,很简单的。

如果没有linux服务器,用windows也是没有一点问题的。

基础文件的话,可以随便找几十张照片即可,放到服务器目录上。

脚本

新建脚本文件:CopyDir.py

复制以下内容,保存!

#!/usr/bin/python3

import os
import shutil

def ceshi():

    source_path = '/home/ubuntu/xxxx/01'

    for i in range(1,350): ##起始值为1,
        target_path = '/home/ubuntu/xxxx/' + '%d'%i

        if not os.path.exists(target_path):
            #如果目标路径不存在原文件夹的话就创建
            os.makedirs(target_path)

        if os.path.exists(source_path):
            #如果目标路径存在原文件夹的话就先删除
            shutil.rmtree(target_path)

        shutil.copytree(source_path, target_path)
        print('copy dir finished!') 

ceshi()

代码说明

for i in range(1,350)

350是循环350次,从1开始

如果是windows,把代码中的路径改下就可以了。

运行结果

运行命令:./CopyDir.py



python 复制文件 win32clipboard python 复制文件覆盖_python pexels_02

看到这里是不是发出一声感叹,python确实有它的魅力,短短一行代码,就完成这个需求,而且文件随改随执行,不需要重新编译。