最近在学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< 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"