import shutil, os, zipfile
# 复制、移动、改名、删除文件与文件夹
#shutil.copy('e:\111\key.txt', 'd:\111\') # copy文件
#shutil.copytree('e:\111', 'd:\111\aaa') # copy目录。且目标文件夹需不存在
#shutil.move('e:\111\key.txt', 'e:\111\key2.txt') # 改文件名
#shutil.move('e:\111', 'e:\112') # 改文件夹名
#shutil.move('e:\112\key2.txt', 'd:\111\key22.txt') # 移动文件
#shutil.move('e:\112', 'd:\111') # 移动文件夹
#shutil.rmtree('d:\111\112') # 不可恢复地删除文件夹
#os.unlink('d:\111\key22.txt') # 删除文件
'''#删除文件或文件夹到回收站
import send2trash
send2trash.send2trash('d:\111')
baconFile = open('bacon.txt', 'a') # creates the file
baconFile.write('Bacon is not a vegetable.')
baconFile.close()
send2trash.send2trash('bacon.txt')
# 遍历目录树,压缩到zip
newZip = zipfile.ZipFile('c:\new.zip', 'w')
for folderName, subfolders, filenames in os.walk('D:\xiaomi'):
print('The current folder is ' + folderName)
for subfolder in subfolders:
print('SUBFOLDER OF ' + folderName + ': ' + subfolder)
newZip.write(folderName+'\'+subfolder, compress_type=zipfile.ZIP_DEFLATED)
for filename in filenames:
print('FILE INSIDE ' + folderName + ': '+ filename)
newZip.write(folderName+'\'+filename, compress_type=zipfile.ZIP_DEFLATED)
print('')
newZip.close()
'''
# 解压缩zip到指定文件夹
exampleZip = zipfile.ZipFile('c:\new.zip')
for file_name in exampleZip.namelist():
print('File:', file_name, end = ' ')
file_bytes = exampleZip.read(file_name)
print('has ', len(file_bytes), ' bytes', end = ' ')
spamInfo = exampleZip.getinfo(file_name)
if spamInfo.file_size and spamInfo.compress_size:
print('Compressed file is %sx smaller!' % (round(spamInfo.file_size / spamInfo.compress_size, 2)))
print()
# exampleZip.extractall("d:\333")
# exampleZip.extract('xiaomi/MiPhoneManager/LocalCache/6O5513A60360/' , 'd:\333\') # 可以解压一个文件或一个空文件夹名称
exampleZip.close()
print('')