python自学记录-文件操作2

1.复制单个文件到指定目录下
import os
import shutil


source = 'D:\\findtext\\test.txt'  #注意:1.此处不支持把整个目录复制到另个文件夹下
destination = 'D:\\newfile'        #注意:1.文件夹要存在,会生成一个newfile文件,而非在newfile文件夹下生成一个文件


shutil.copy(source,destination)

2.复制单个文件到另一个文件(覆盖另一个文件内容)
import os
import shutil


source = 'D:\\findtext\\test.txt'
destination = 'D:\\newfile\\test2.txt' #注意:1.test2.txt文件必须存在


shutil.copy(source,destination)


3.复制整个文件夹内容(子文件夹和子文件)到另一个新目录
import os
import shutil


source = 'D:\\findtext'
destination = 'D:\\newdir'     #注意:newdir必须是未创建的目录,否则还要报错。


shutil.copytree(source,destination)

4.移动整个文件夹到另一个文件夹下
import os
import shutil


source = 'D:\\findtext'
destination = 'D:\\newdir'


shutil.move(source,destination)

5.移动单个文件到某个文件夹下,且改名
import os
import shutil


source = 'D:\\findtext\\test.txt'
destination = 'D:\\newdir\\newname.txt' #原来已有newname.txt文件


shutil.move(source,destination)

6.删除文件

import os
import shutil

source = 'D:\\findtext'
print(os.listdir(source))

for filename in os.listdir(source):
    if filename.endswith('.rxt'):
        print(filename)
        os.unlink(source+'\\'+filename) #注意此处删除的时候路径要正确

print(os.listdir(source))

7.删除空文件夹
import os
import shutil

source = 'D:\\findtext'
print(os.listdir(source))


for filename in os.listdir(source):
    if os.path.isdir(source+'\\'+filename)==True and len(os.listdir(source+'\\'+filename))==0 : #1.判断文件为文件夹 #2.文件夹下无其他文件
        os.rmdir(source+'\\'+filename)  #1.注意此处删除的时候路径要正确 
        
print(os.listdir(source))

8.删除非空文件夹

import os
import shutil

source = 'D:\\findtext'
print(os.listdir(source))


for filename in os.listdir(source):
    if(os.path.isdir(source+'\\'+filename))==True:
        print(source+'\\'+filename)
        shutil.rmtree(source+'\\'+filename)  #1.注意此处删除的时候路径要正确  2.删除空的文件夹、非空的文件夹及内容
        
print(os.listdir(source))

9.删除指定文件。删除后的文件再垃圾箱里,还可以被恢复
import send2trash #注意事先要安装send2trash模块

source = 'D:\\findtext\\test.txt'
send2trash.send2trash(source)

10.用walk函数遍历目录
import os

source = 'D:\\findtext'
for folderName,subfolders,filenames in os.walk(source):
    print ('当前目录为:'+folderName)

    for subfolder in subfolders:
        print(folderName+'目录下的:'+subfolder+'目录')
    for filename in filenames:
        print(folderName+'目录下的:'+filename+'文件')

    print(' ')

11.将文件夹压缩为zip文件-1

import zipfile

newZip=zipfile.ZipFile('d:\\new.zip','w') # 第二个参数w代表覆盖模式
newZip.write('d:\\findtext',compress_type=zipfile.ZIP_DEFLATED)
newZip.close()

12.将文件夹压缩为zip文件-2

import zipfile,os

newZip=zipfile.ZipFile('d:\\new.zip','a') #用a添加模式,添加到压缩文件里
newZip.write('D:\\newdir',compress_type=zipfile.ZIP_DEFLATED)
newZip.close()

13.查看压缩文件里的文件
import zipfile,os


myzip=zipfile.ZipFile('d:\\my.zip')
print(myzip.namelist()) #打印压缩文件里第一级目录里的文件名称

info=myzip.getinfo('test.txt') #注意此处不能写成d:\\test.txt
print(info.file_size) #压缩前的文件大小
print(info.compress_size) #压缩后的文件大小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值