1、引入shutil模块,包含复制、移动、改名和删除文件等
import shutil
2、复制文件和文件夹
shutil.copy(source,dest):从source处的文件复制到dest处的文件夹,如果source是文件名,dest是目录,则把文件拷贝到dest目录下,名称仍为source的文件名;如果source是文件名,dest是文件名,则source的文件内容拷贝到dest中,文件名是dest的文件名。
shutil.copytree(source,dest):复制整个文件夹,以及它包含的子文件夹和文件
代码如下:
import shutil,os
shutil.copy('c:\\spam.txt','c:\\delicious')
返回:c:\\delicious\\spam.txt
shutil.copy('eggs.txt','c:\\delicious\\eggs2.txt')
返回:c:\\delicious\\eggs2.txt
shutil.copytree('c:\\bacon','c:\\bacon_backup')
返回:c:\\bacon_backup
3、文件和文件夹的移动或改名
shutil.move(source,dest):将source处的文件夹移动到dest处
代码如下:
import shutil
shutil.move('c:\\bacon.txt','c:\\eggs') #c:\\eggs目录存在
返回:c:\\egges\\bacon.txt
shutil.move('c:\\bacon.txt','c:\\eggs\\new_bacon.txt') #c:\\eggs\\new_bacon.txt存在
返回:c:\\eggs\\new_bacon.txt
shutil.move('c:\\bacon.txt','c:\\apples') #c:\\apples不存在,c:\\bacon.txt改名为c:\\apples(没有文件名后缀的文本文件)
返回:c:\\apples
4、删除文件
os.unlink(path): 删除path处的文件
os.rmdir(path): 删除path处的文件夹,该文件夹必须为空
shutil.rmtree(path): 删除path处的文件夹,包含所有文件和文件夹都会删除
send2trash(path): 安全删除文件和文件夹,删除的文件(夹)送到垃圾箱,可以恢复
代码如下:
import send2trash
baconFile=open('bacon.txt','a')
baconFile.write('Bacon is not vegetable.')
baconFile.close()
send2trash.send2trash('bacon.txt') #删除文件,送到垃圾箱
5、遍历目录树os.walk()
os.walk(path):返回3个值
1)当前文件夹名称的字符串
2)当前文件夹中子文件夹的字符串的列表
3)当前文件夹中文件的字符串的列表
代码如下:
import os
for folderName,subfolders,filenames in os.walk('c:\\delicious'):
print('The current folder is '+folderName)
for subfolder in subfolders:
print('SUBFOLDER OF '+folderName+' : '+subfolder
for filename in filenames:
print('FILE NAME '+folderName+' : '+filename)
print('')
6、读取压缩文件zipfile.ZipFile()
import zipfile,os
os.chdir('c:\\')
examplezip=zipfile.ZipFile('example.zip') #创建zipFile对象
examplezip.namelist() #压缩文件中文件名列表
spamInfo=examplezip.getInfo('spam.txt')
spamInfo.file_size #文件大小
spamInfo.compress_size #压缩文件大小
‘Compressed file is %sx smaller!’ %(round(spamInfo.file_size/spamInfo.compress_size,2))
examplezip.close()
7、从zip文件中解压缩extractall()
import zipfile,os
os.chdir('c:\\')
examplezip=zipfile.ZipFile('example.zip')
examplezip.extractall()
examplezip.close()
或者
examplezip.extract('spam.txt')
examplezip.extract('spam.txt','c:\\some\\new\\folders')
examplezip.close()
8、创建或追加到zip文件
import zipfile
newzip=zipfile.ZipFile('new.zip','w') #写模式会擦除zip文件中原有内容,a是追加模式打开
newzip.write('spam.txt',compress_type=zipfile.ZIP_DEFLATED)
newzip.close()