【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:\Users\Administrator\Desktop\test" isBackup = True # Ture:从U盘备份到target False:从target备份到U盘 main(target, isBackup)