一、起因

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

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

二、代码

  

  1. import os, shutil, psutil
  2. from datetime import datetime
  3.  
  4. # 检测U盘并返回盘符
  5. def get_udisk():
  6. """
  7. :return: 返回U盘盘符
  8. """
  9. disks = psutil.disk_partitions(all=False) # 获取磁盘完整信息
  10. for disk in disks:
  11. disk = str(disk)
  12. if disk.find("removable") > -1:
  13. l = disk.find("',")
  14. udisk = (disk[18:l])
  15. return udisk
  16. print("未检测到U盘插入!")
  17.  
  18. # 检测目录是否有文件存在
  19. def has_file(path):
  20. """
  21. :param path: 目标路径
  22. :return:
  23. """
  24. for parent, dir_names, file_names in os.walk(path):
  25. if file_names:
  26. return True
  27.  
  28. # 复制文件
  29. def backup(target, backup_path):
  30. """
  31. :param target: 目标路径
  32. :param backup_path: 备份路径
  33. :return:
  34. """
  35. # 如果目标不存在文件,则没有必要执行复制操作
  36. if not has_file(target):
  37. print("'{0}' 目录下不存在文件!".format(target))
  38. return
  39.  
  40. # 备份文件名、路径
  41. backup_file = "backup_" + datetime.now().strftime("%Y%m%d%H%M%S")
  42. backup_file_path = backup_path + '\\' +backup_file
  43.  
  44. # 已存在备份就删除它
  45. if os.path.exists(backup_file_path):
  46. shutil.rmtree(backup_file_path)
  47.  
  48. # 备份文件
  49. if os.path.exists(target):
  50. shutil.copytree(target,os.path.join(backup_path, backup_file))
  51. print("已成功备份!")
  52.  
  53. def main(target, isBackup):
  54. udisk = get_udisk()
  55. if udisk:
  56. if isBackup:
  57. backup(target=udisk, backup_path=target) # 从U盘备份到target
  58. else:
  59. backup(target=target, backup_path=udisk) # 从target备份到U盘
  60.  
  61. if __name__ == '__main__':
  62. target = r"C:\Users\Administrator\Desktop\test"
  63. isBackup = True # Ture:从U盘备份到target False:从target备份到U盘
  64. main(target, isBackup)

【python3】拷贝U盘文件的更多相关文章

  1. Linux拷贝U盘文件(命令行)

    Linux系统有的有界面,有的没有只要命令窗口,因此导入外部文件就变得困难,没有可视化的方便. 这里通过挂载u盘进行文件拷贝. 首先挂载u盘:这里以centos为例 1.进入命令行模式下,输入命令 s ...

  2. U盘文件被隐藏

    转自https://blog.csdn.net/zichen_ziqi/article/details/80171891 文章原地址:http://www.uqidong.com/help/1625. ...

  3. Ubuntu下U盘文件只读的解决办法

    转自linux公社:http://www.linuxidc.com/Linux/2012-12/76130.htm Ubuntu下U盘出现文件系统只读的问题了.症状为无法删除U盘中现有文件,无法向U盘 ...

  4. 使用javascript实现html页面直接下载网盘文件

    公司新建一网站,用的是商派的易开店系统.设计方案中有一个是下载文件的功能,但易开店不支持上传资源,所以无法下载本站资源. 于是想到了网盘资源下载,有些网站是把页面链接到网盘资源文件下载页面,进行二次跳 ...

  5. linux下U盘文件只读的解决办法

    . 在终端运行如下命令 tail -f /var/log/syslog . 插入有只读文件系统故障的U盘 . 观察命令行输出 输出局部如下: Jul :: cslouis-pc kernel: [15 ...

  6. u盘文件系统故障的修复方法

    比如U盘挂载的文件系统是/dev/sda1,且文件系统有故障(FAT: Filesystem error) 修复U盘文件系统故障 sudo dosfsck -v -a /dev/sda1

  7. java笔试题: ——将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面

    将e:/source文件夹下的文件打个zip包后拷贝到f:/文件夹下面 import java.io.*; import java.util.zip.ZipEntry; import java.uti ...

  8. 将U盘分成 启动盘+文件存储区

    我看了很多帖子,发现想要将U盘分区的朋友绝大部分是和我一样,想用U盘做成一个启动盘同时兼顾文件存储,分区的目的很简单,就是想将启动部分单独做成一个区,以免在日常的应用中使得启动文件染毒或者误操作造成损 ...

  9. Mysql 利用拷贝data目录文件的方式迁移mysql数据库

    Mysql 利用拷贝data目录文件的方式迁移mysql数据库 步骤如下: 1.首先要确定data目录 这个问题困扰了我很久,因为网上的帖子大部分只是说拷贝mysql数据库目录下的data文件夹中的数 ...

随机推荐

  1. BeautifulSoup爬虫基础知识

    安装beautiful soup模块 Windows: pip install beautifulsoup4 Linux: apt-get install python-bs4 BS4解析器比较 BS ...

  2. Python-Image 基本的图像处理操作

    Python-Image 基本的图像处理操作,有需要的朋友可以参考下. Python 里面最常用的图像操作库是 Image library(PIL),功能上,虽然还不能跟Matlab比较,但是还是比较 ...

  3. SQL Server ->> 调用系统内建扩展存储过程"master.dbo.xp_delete_file"删除过期备份文件

    DECLARE @oldDate DATETIME SET @oldDate = GETDATE()-30 EXECUTE MASTER.dbo.xp_delete_file 0, N'D:\back ...

  4. springMVC入门-06

    这一讲介绍更新操作的实现,更新操作在controller类中首先需要在前台通过某一字段获取对象之后,将对象放在controller类中的Model对象中,用于在update.jsp前台页面进行编辑操作 ...

  5. MySQL上机实习报告(一)

    一.实习内容    利用wamp进行MySQL上机实习,建立数据库和一个学生信息表,并能对建的表进行数据插入.修改.查询和删除等内容. 二.实习目的 能将课堂上所学的内容运用到实际的上机操作中,进一步 ...

  6. [翻译] DoImagePickerController

    DoImagePickerController An image picker controller with single selection and multiple selection. Sup ...

  7. UNIX高级环境编程(5)Files And Directories - 文件相关时间,目录文件相关操作

     1 File Times 每个文件会维护三个时间字段,每个字段代表的时间都不同.如下表所示: 字段说明: st_mtim(the modification time)记录了文件内容最后一次被修改的时 ...

  8. 铁乐学python_day20_面向对象编程2

    面向对象的组合用法 软件重用的重要方式除了继承之外还有另外一种方式,即:组合 组合指的是,在一个类中以另外一个类的对象作为数据属性,称为类的组合. 例:人狗大战,人类绑定上武器来对狗进行攻击: # 定 ...

  9. DevExpress01、独立使用的控件

    XtraEditors 库提供了只能独立使用的控件,也就是说不能在容器控件的内置编辑中使用它们. 这些控件包括: 几种类型的列表框.数据导航控件.滚动条和一个按钮控件. 这些控件都是 BaseStyl ...

  10. Ubuntu 12.04常用快捷键

    ===== 桌面 ===== ALT + F1: 聚焦到桌面左侧任务导航栏,可按上下键导航. ALT + F2: 运行命令 ALT + F4: 关闭窗口 ALT + TAB: 切换程序窗口 ALT + ...