python拷贝文件到U盘

最近在学python。刚好有个想法,不用每次都用鼠标复制黏贴就把文件拷贝到我的U盘里。如果有兴趣的还可以写个守护进程。

下面是代码

import win32file
import os
import win32file
import tempfile
import shutil

from win32com.shell import shell, shellcon


'''
检查系统有多少个盘,并返回最后一个盘符,一般U盘为最后一个。所以返回的是u盘符号。
'''
 
def getdrives():  
    drives=[]  
    sign=win32file.GetLogicalDrives()  
    drive_all=["A:\\","B:\\","C:\\","D:\\","E:\\","F:\\","G:\\","H:\\","I:\\",  
                "J:\\","K:\\","L:\\","M:\\","N:\\","O:\\","P:\\","Q:\\","R:\\",  
                "S:\\","T:\\","U:\\","V:\\","W:\\","X:\\","Y:\\","Z:\\"]  
    for i in range(25):  
        if (sign&1<<i):  
            if win32file.GetDriveType(drive_all[i])==3:  
                drives.append(drive_all[i])  
    return drives  
  
def is_UDisk(drives):  
    UDisk=[]
    for item in drives:
        try :  
            free_bytes,total_bytes,total_free_bytes=win32file.GetDiskFreeSpaceEx(item)
            if (free_bytes/1024/1024/1024)<17:
                UDisk.append(item)
                print 'append'
            else:
                print free_bytes/1024/1024/1024
        except :
            break  
    return UDisk  
  
if __name__=="__main__":  
    drives=is_UDisk(getdrives())  
    print drives  
    dir = ''.join(drives)


'''
往里面拷贝一个文件
'''
newfile = os.path.join(dir,"中转站")
print newfile
#shutil.copytree("C:\\Users\\Lenovo\\Desktop\\2017\\","C:\\Users\\Lenovo\\Desktop\\2018\\")


#filename1 = tempfile.mktemp (".txt")


filename1 = os.path.join(newfile,"hello.txt")  #需要拷贝的文件
#filename3 = "C:\\Users\\Lenovo\\Desktop\\2017"
filename3 = os.path.join(newfile,"hello")  # 需要拷贝的文件夹
#open (filename1, "w").close ()
filename2 = filename1 + ".copy"
print filename1, "=>", filename2
filename4 = os.path.join(newfile,"bak")
#拷文件
#文件已存在时,shellcon.FOF_RENAMEONCOLLISION会指示重命名文件
shell.SHFileOperation ((0, shellcon.FO_COPY, filename1, filename2, 0, None, None))
'''
shell.SHFileOperation (
  (0, shellcon.FO_COPY, filename1, filename2, shellcon.FOF_RENAMEONCOLLISION, None, None)
)
shell.SHFileOperation (
  (0, shellcon.FO_COPY, filename1, filename2, 0, None, None)
)
'''
if os.path.isfile (filename2): print "Success"


#拷目录
shell.SHFileOperation (
  (0, shellcon.FO_COPY, filename3, filename4, 0, None, None)
)
 
if os.path.isdir (filename4): print "Success"





  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值