(4.10)--第10章 文件与文件夹操作.ppt

上传人:奉*** 文档编号:96342710 上传时间:2023-11-08 格式:PPT 页数:13 大小:69.18KB
返回 下载 相关 举报
(4.10)--第10章 文件与文件夹操作.ppt_第1页
第1页 / 共13页
(4.10)--第10章 文件与文件夹操作.ppt_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《(4.10)--第10章 文件与文件夹操作.ppt》由会员分享,可在线阅读,更多相关《(4.10)--第10章 文件与文件夹操作.ppt(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第10章 文件与文件夹操作110.1 os模块2方法方法功能说明功能说明chdir(path)把path设为当前工作目录getcwd()返回当前工作目录listdir(path)返回path目录下的文件和目录列表remove(path)删除指定的文件,要求用户拥有删除文件的权限,并且文件没有只读或其他特殊属性rename(src,dst)重命名文件或目录,可以实现文件的移动,若目标文件已存在则抛出异常,不能跨越磁盘或分区startfile(filepath,operation)使用关联的应用程序打开指定文件或启动指定应用程序system()调用外部程序10.1 os模块如果需要遍历指定目录下所

2、有子目录和文件,可以使用递归的方法。from os import listdirfrom os.path import join,isfile,isdirdef listDirDepthFirst(directory):深度优先遍历文件夹#遍历文件夹,如果是文件就直接输出#如果是文件夹,就输出显示,然后递归遍历该文件夹 for subPath in listdir(directory):path=join(directory,subPath)if isfile(path):print(path)elif isdir(path):print(path)listDirDepthFirst(path

3、)310.2 os.path模块4方法方法功能说明功能说明abspath(path)返回给定路径的绝对路径basename(path)返回指定路径的最后一个组成部分commonpath(paths)返回给定的多个路径的最长公共路径commonprefix(paths)返回给定的多个路径的最长公共前缀dirname(p)返回给定路径的文件夹部分exists(path)判断文件是否存在getatime(filename)返回文件的最后访问时间getctime(filename)返回文件的创建时间getmtime(filename)返回文件的最后修改时间getsize(filename)返回文件的大

4、小10.2 os.path模块5方法方法功能说明功能说明isabs(path)判断path是否为绝对路径isdir(path)判断path是否为文件夹isfile(path)判断path是否为文件join(path,*paths)连接两个或多个pathrealpath(path)返回给定路径的绝对路径relpath(path)返回给定路径的相对路径,不能跨越磁盘驱动器或分区samefile(f1,f2)测试f1和f2这两个路径是否引用的同一个文件split(path)以路径中的最后一个斜线为分隔符把路径分隔成两部分,以元组形式返回splitext(path)从路径中分隔文件的扩展名splitd

5、rive(path)从路径中分隔驱动器的名称10.3 shutil模块6方法方法功能说明功能说明copyfile(src,dst)复制文件copytree(src,dst)递归复制文件夹disk_usage(path)查看磁盘使用情况move(src,dst)移动文件或递归移动文件夹,也可以给文件和文件夹重命名rmtree(path)递归删除文件夹make_archive(base_name,format,root_dir=None,base_dir=None)创建tar或zip格式的压缩文件unpack_archive(filename,extract_dir=None,format=Non

6、e)解压缩压缩文件10.3 shutil模块下面的代码演示了如何使用标准库shutil的copyfile()方法复制文件。import shutil#导入shutil模块 shutil.copyfile(C:dir.txt,C:dir1.txt)#复制文件下面的代码将C:Python35Dlls文件夹以及该文件夹中所有文件压缩至D:a.zip文件:shutil.make_archive(D:a,zip,C:Python35,Dlls)D:a.zip下面的代码将刚压缩得到的文件D:a.zip解压缩至D:a_unpack文件夹:shutil.unpack_archive(D:a.zip,D:a_u

7、npack)下面的代码使用shutil模块的方法删除刚刚解压缩得到的文件夹:shutil.rmtree(D:a_unpack)710.4 精彩案例赏析示例示例10-1 把指定文件夹中的所有文件名批量随机化,保持文件类型不变。from string import ascii_lettersfrom os import listdir,renamefrom os.path import splitext,joinfrom random import choice,randintdef randomFilename(directory):for fn in listdir(directory):#切

8、分,得到文件名和扩展名 name,ext=splitext(fn)n=randint(5,20)#生成随机字符串作为新文件名 newName=.join(choice(ascii_letters)for i in range(n)#修改文件名 rename(join(directory,fn),join(directory,newName+ext)randomFilename(C:test)810.4 精彩案例赏析示例示例10-2 编写程序,统计指定文件夹大小以及文件和子文件夹数量。本例属于系统运维范畴,可用于磁盘配额的计算,例如email、博客、FTP、快盘等系统中每个账号所占空间大小的统计

9、。import ostotalSize=0fileNum=0dirNum=0910.4 精彩案例赏析def visitDir(path):global totalSize global fileNum global dirNum for lists in os.listdir(path):sub_path=os.path.join(path,lists)if os.path.isfile(sub_path):fileNum=fileNum+1#统计文件数量 totalSize=totalSize+os.path.getsize(sub_path)#统计文件总大小 elif os.path.is

10、dir(sub_path):dirNum=dirNum+1#统计文件夹数量 visitDir(sub_path)#递归遍历子文件夹1010.4 精彩案例赏析def main(path):if not os.path.isdir(path):print(Error:,path,is not a directory or does not exist.)return visitDir(path)def sizeConvert(size):#单位换算 K,M,G=1024,1024*2,1024*3 if size=G:return str(size/G)+G Bytes elif size=M:r

11、eturn str(size/M)+M Bytes elif size=K:return str(size/K)+K Bytes else:return str(size)+Bytes1110.4 精彩案例赏析def output(path):print(The total size of+path+is:+sizeConvert(totalSize)+(+str(totalSize)+Bytes)print(The total number of files in+path+is:,fileNum)print(The total number of directories in+path+i

12、s:,dirNum)if _name_=_main_:path=rd:idapro6.5plus main(path)output(path)1210.4 精彩案例赏析示例示例10-3 编写程序,递归删除指定文件夹中指定类型的文件和大小为0的文件。from os.path import isdir,join,splitextfrom os import remove,listdir,chmod,statfiletypes=(.tmp,.log,.obj,.txt)#指定要删除的文件类型def delCertainFiles(directory):if not isdir(directory):return for filename in listdir(directory):temp=join(directory,filename)if isdir(temp):delCertainFiles(temp)#递归调用 elif splitext(temp)1 in filetypes or stat(temp).st_size=0:chmod(temp,0o777)#修改文件属性,获取删除权限 remove(temp)#删除文件 print(temp,deleted.)delCertainFiles(rC:test)13

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com