使用Python检测U盘并复制所需文件
要使用Python检测U盘并复制所需的文件,可以使用`psutil`库来检测U盘,然后使用`shutil`库来复制文件。以下是一个简单的示例: 1. 首先,确保已经安装了`psutil`库。如果没有安装,可以使用以下命令安装: ```bash pip install psutil ``` 2. 然后,使用以下代码检测U盘并复制所需的文件: ```python import os import shutil import psutil def find_usb_device(): for disk in psutil.disk_partitions(): if 'removable' in disk.opts: return disk.device return None def copy_files(src, dst): if not os.path.exists(dst): os.makedirs(dst) for item in os.listdir(src):
Python检测U盘并复制所需的文件,检测计算机中是否插入U盘,如果插入U盘则将对应的数据复制到计算机中。
#-*-coding:utf-8-*-#[url=home.php?mod=space&uid=238618]@Time[/url]:2021/7/10#[url=home.php?mod=space&uid=686208]@AuThor[/url]:陈墨#@Software:PyCharm#@function:读取U盘的数据fromtimeimportsleepfromshutilimportcopytree,copyfile,rmtree,moveimportosfrompsutilimportdisk_partitionsimportlogginglogging.basicConfig(level=logging.INFO,format='%(asctime)s-%(name)s-%(levelname)s-%(message)s')logger=logging.getLogger(__name__)#获取U盘的盘符#disk_partitions()打印一下他的返回值,就会完全清楚下面这个函数defget_usb_dispart():foritemindisk_partitions():ifitem.opts=="rw,removable":#可读、可移动介质logger.info("发现USB:%s"%str(item))returnitem.devicelogger.info("没有发现USB")returnNone#读取想要的文件u盘所有文件或者文件名含有某个字段的文件及文件夹#1、文件夹含有该字段:复制文件夹;#2、文件含有字段,复制文件。defget_useb_file(src,path="",select=None,dst=r"C:\usb"):ifselectisNone:#无筛选规则,复制所有copytree(src,dst)logger.info("复制%s盘USB所有内容到%s"%(src,dst))else:#复制部分paths=os.listdir(os.path.join(src,path))#获取当前路径下的所有文件及文件夹foriteminpaths:item=os.path.join(path,item)ifselectinitem:ifos.path.isdir(os.path.join(src,item)):#如果是文件夹,还有字符直接复制文件夹;否则递归遍历文件夹下的内容try:copytree(os.path.join(src,item),os.path.join(dst,item))exceptExceptionase:try:rmtree(os.path.join(dst,item))except:continuecopytree(os.path.join(src,item),os.path.join(dst,item))else:try:copyfile(os.path.join(src,item),os.path.join(dst,item))exceptExceptionase:os.makedirs(os.path.dirname(os.path.join(dst,item)))try:move(os.path.join(dst,item))except:continuecopyfile(os.path.join(src,item),os.path.join(dst,item))logger.info("复制%s到%s"%(os.path.join(src,item),(os.path.join(dst,item))))else:ifos.path.isdir(os.path.join(src,item)):get_useb_file(src,item,select,dst)if__name__=="__main__":whileTrue:path=get_usb_dispart()ifpathisnotNone:get_useb_file(src=path,select="测试",dst=r"F:\usb")breaksleep(1)