python模块系列(四)之文件目录

引言
文件操作在我们日常编写程序中经常使用,因为这是最常用的存储数据的方式,为了解决在日常生活中遇到的文件读写乱码、文件内置函数遗忘等问题,所以总结了对文件及目录操作进行了整理和总结。对于文件及目录操作,使用的是os模块和os.path等模块。

一.文件基础操作
(1).文件新建、文件以读写方式打开

f=open(file, mode=’r’, buffering=None, encoding=None,…)

通过这个控制mode可以实现新建,打开文件的操作.

mode描述举例解释
r读操作,若文件不存在则引发异常open(fname,’rb’)以方式从文件中读取
w写操作,不存在文件则新建open(fname,’wb’)写文件
a追加模式,不存在则新建open(fname,’a’)向文件追加
t文本模式(默认)open(fname,’rt’)以文本模式读取文件
b二进制模式open(fname,’rb’)以二进制模式读取文件
+打开一个带读写的文件open(fname,’wb+’)以二进制写方式打开一个可以读写的文件

(2).文件读写操作

函数描述
f.readline()返回读取的一行数据(f是读模式,默认文本读)
f.read()以文本方式或二进制方式全部读取(f是文本读或者二进制读模式)
f.write(str)写入数据 (f是写模式)
f.flush()将缓存数据写入磁盘
f.seek(offset[,whence])将文件操作标记移到offset的位置
f.close()关闭文件

二.文件目录进阶操作

文件目录操作部分需要用到os和os.path,shutil这3个模块

(1)文件操作

函数描述
os.remove(fname)删除文件
os.rename(oldname,newname)重命名文件
os.path.isfile(fname)判断是否是文件
os.path.exists(fname)判断文件是否存在
shutil.move(oldpos,newpos)移动文件
os.stat(file).获取文件属性
os.path.getsize(filename)获取文件大小
shutil.copyfile(oldfile,newfile)oldfile和newfile都只能是文件

(2)目录操作

函数描述
os.mkdir(dirname)创建单个目录
os.makedirs(dirname)创建多级目录
os.chdir(dir)切换目录
os.rename(oldname,newname)文件或目录都是使用这条命令
os.listdir(path)返回指定目录下的所有文件和目录名
os.path.isdir(dirname)检验给出的路径是否是一个目录
shutil.rmtree(dir)删除(递归)目录
shutil.copy(oldfile,newfile)oldf只能是文件夹,newf可以是文件,也可以是目标目录
shutil.copytree(olddir,newdir)olddir和newdir都只能是目录,且newdir必须不存在
os.rmdir(dir)删除空目录
shutil.copytree(olddir,newdir)olddir和newdir都只能是目录,且newdir必须不存在

(3)路径操作

函数描述
os.path.isabs()判断是否是绝对路径
os.path.isfile()检验给出的路径是否是一个文件
os.path.isdir()检验给出的路径是否是一个目录
os.path.split()返回一个路径的目录名和文件名
os.path.splitext()分离扩展名
os.path.dirname()获取路径名
os.path.basename()获取文件名
os.chdir(path)切换路径

三.实战

"""
dir:操作目录
file_typeList带过滤的文件的类型(txt,pdf等)
检索出(多层)目录下所有满足要求的文件类型的文件并进行答应
"""
def retrieveFile(dir,file_typeList):
    #列出当前目录下所有的目录及文件
    files=os.listdir(dir)
    for f in files:
        abs_file=dir+"\\"+f
        #如果是目录,则调用递归函数继续处理
        if os.path.isdir(abs_file):
            retrieveFile(abs_file)
        #如果是文件,则进行文件操作
        else:
            file_type=os.path.splitext()
            print("文件类型:%s"%file_type)
            #如果此文件类型在文件列表中
            if filetype in file_typeList:
                filename=os.path.basename()
                print("file is %s"%filename)

四.感悟
定期归纳总结反复出现的知识点是最有效的学习方式。在文件操作这部分,我们并没有对文件读写乱码问题进行叙述,在之后的博客中,乱码问题本身就很复杂,涉及到多方面的知识点.我会对乱码这块做一个详细的分析。因为这个问题在python中实在是太常见了,也太重要了!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值