第一更
关于文件的操作
主要用了os模块和shutil模块
列出所有文件夹和文件
import os
print(os.listdir(指定相对路径或绝对路径))
判断是否为文件或者文件夹
import os
files =os.listdir()
for file in files:
print(file,os.path.isdir(file))
遍历文件夹
for dirpath,dirnames,files in os. walk(('./'):
print(f'发现文件夹:{dirpath}')
print(files)dirpath是文件夹路径
dirnames是dirpath这个文件夹下的子文件夹列表
files是dirpath这个文件夹里的文件列表
创建文件夹
import os
os.mkdir('新文件夹') //如果文件夹存在会报错
检测文件夹是否存在,不在的话创建
if not os.path.exists(‘新文件夹’):
os.mkdir(‘新文件夹')
创建多层文件夹
os.makedirs('first/sec/third')
复制文件用 shutli 模块
import shutil
shutil.copy('file1.txt',./新文件夹')
shutil.copy('file1.txt','./新文件夹/new_file.txt')
两种方式使用:第二种参数写某个文件夹位置,则复制到该文件夹下
第二个参数写某个文件路径,复制到这个路径并且重名名
复制文件夹
shutil.copytree(‘这是一个文件夹’,’这是一个新文件夹’) //会将文件夹内所有文件和文件夹复制过去
移动文件或文件夹
shutil.move(‘file2.txt’,’这是一个新文件夹/file3.txt’)
shutil.move(‘file1.txt,’这是一个新文件夹/’)
shutil.move(‘这是一个文件夹’,’这是一个新文件夹/’)
两种方式的使用:第二个参数写某个文件夹位置,则移动到该文件夹下
第二个参数写某个文件路径,移动到这个路径并且重命名
如果是文件夹记住最后加斜杠/
重命名文件或者文件夹
import os
os.rename(‘这是一个文件夹’,’这是重命名后的文件夹’)
os.rename(‘file1.txt’,new.txt’)
删除文件夹
import shutil
shutil.rmtree(‘这是一个文件夹’)
读取压缩包文件
import zipfile
with zipfile.ZipFile(‘这是一个压缩包.zip’,’r’) as zipobj:
print(zipobj.namelisit()
处理压缩包中的中文
import zipfile
with zipfile.ZipFile(‘这是一个压缩包.zip’,’r’ ) as zipobj:
for file_name in zipobj.namelist():
print(file_name.encode(‘cp437’).decode(‘gbk’))
读取压缩包内文件信息
with zipfile.ZipFile(‘这是一个压缩包.zip’,’r’) as zipobj:
for file_name in zipoj.namelist():
info =zipobj.getinfo(file_name)
file)_name =file_name.encode(cp437’).decode(‘gbk’)
print(file_name,info.file_size,info.compress_size)
.file_size 是原始文件大小
.compress_size 是压缩后大小
将压缩包内单个文件解压出来
with zipfile.ZipFile(‘这是一个压缩包.zip’,’r’) as zipobj;
zipobj.extract(file1.txt)
中文乱码解决办法:
重新调整编码
for file_name in zipobj.namelist():
correct_path =file_name.encode(‘cp437’).decode(‘gbk’)
将有密码的压缩包解压
with zipfile.ZipFile(‘这是一个有密码的压缩包.zip,’r’) as zipobj:
zipobj.extractall(path=’解压’,pwd=b ‘makerbean’)
创建压缩包
import zipfile
file_list = [‘file1’,'file2’,'file3’,file.txt]
with zipfile.ZipFile(’这是程序创建的压缩包.zip’,’w’) as zipobj:
for file in file_list:
zipobj.write(file)
向已有压缩包内添加文件
with zipfile.ZipFile(‘这是程序员创建的压缩包.zip’,’a’) as zip obj:
zipobj.write(‘file2.txt’)