zoukankan      html  css  js  c++  java
  • 【python3】拷贝U盘文件

    一、起因

           前天在公众号上,看到一篇如何用python偷偷拷贝别人U盘内容的文章推送,感觉这个想法挺有意思的,可惜是用的是linux系统,而且移动硬盘的盘符也是写死的,不够灵活,于是就自己动手写了一个demo。

           demo 的基本功能是 将U盘的所有内容拷贝到电脑上的指定位置,或者 将电脑上的指定文件拷贝到 U盘上。

    二、代码

      

    import os, shutil, psutil
    from datetime import datetime
    
    # 检测U盘并返回盘符
    def get_udisk():
        """
        :return: 返回U盘盘符
        """
        disks = psutil.disk_partitions(all=False)  # 获取磁盘完整信息
        for disk in disks:
            disk = str(disk)
            if disk.find("removable") > -1:
                l = disk.find("',")
                udisk = (disk[18:l])
                return udisk
        print("未检测到U盘插入!")
    
    # 检测目录是否有文件存在
    def has_file(path):
        """
        :param path: 目标路径
        :return:
        """
        for parent, dir_names, file_names in os.walk(path):
            if file_names:
                return True
    
    # 复制文件
    def backup(target, backup_path):
        """
        :param target: 目标路径
        :param backup_path: 备份路径
        :return:
        """
        # 如果目标不存在文件,则没有必要执行复制操作
        if not has_file(target):
            print("'{0}' 目录下不存在文件!".format(target))
            return
    
        # 备份文件名、路径
        backup_file = "backup_" + datetime.now().strftime("%Y%m%d%H%M%S")
        backup_file_path = backup_path + '\' +backup_file
    
        # 已存在备份就删除它
        if os.path.exists(backup_file_path):
            shutil.rmtree(backup_file_path)
    
        # 备份文件
        if os.path.exists(target):
            shutil.copytree(target,os.path.join(backup_path, backup_file))
            print("已成功备份!")
    
    def main(target, isBackup):
        udisk = get_udisk()
        if udisk:
            if isBackup:
                backup(target=udisk, backup_path=target)  # 从U盘备份到target
            else:
                backup(target=target, backup_path=udisk)  # 从target备份到U盘
    
    if __name__ == '__main__':
        target = r"C:UsersAdministratorDesktop	est"
        isBackup = True  # Ture:从U盘备份到target  False:从target备份到U盘
        main(target, isBackup)
  • 相关阅读:
    关于nginx稳定版1.20.1 4层负载 stream模块失效
    Docker 容器内分析 java程序占用 cpu 高问题排查分析
    分组排序查第一第二的差值
    【album】语音合成技术
    8.juery
    7.dom
    6.对象
    5.函数
    4.数组
    3.JS
  • 原文地址:https://www.cnblogs.com/TurboWay/p/9661168.html
Copyright © 2011-2022 走看看