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)
  • 相关阅读:
    centos 6 升级gcc
    linux fdisk 分区
    centos使用163的源
    工作流发布成功但不能自动启动
    可怕的断电
    FTP 之 550 permission denied
    Track & Trace
    AutoKey思想的應用(二)
    Windows登錄過程淺析
    snapshot.exe出現異常
  • 原文地址:https://www.cnblogs.com/TurboWay/p/9661168.html
Copyright © 2011-2022 走看看