栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

Python中对文件的读写操作、目录操作

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Python中对文件的读写操作、目录操作

文件读写的原理
  • 读写即“IO操作”
  • 操作流程:
graph LR
A[Python操作文件]-->B[打开或新建文件]
B-->C[读写文件]
C-->D[关闭资源]
文件读写操作 open()函数
  • 按文件中数据的组织形式分类:
    • 文本文件:存储字符文本;
    • 二进制文件:数据内容以字节存储,比如mp3音频jpg图片doc文档
  • 语法规则;
    file=open(filename[,mode="r",encoding])
    
    • file:被创建的文件对象,相对或绝对路径;
    • filename:要创建或打开的文件的名称;
    • mode:打开模式,默认为只读;
      • t:文本模式
      • x:写模式,新建一个文件,如果该文件已存在,则报错;
      • r:以只读方式打开文件。文件指针将会放在文件开头;
      • w;打开一个文件用于写入。存在则打开文件并从头编辑;不存在则新建文件;
      • a:打开一个文件用于追加。存在则继续从文件的结尾编辑;如果该文件不存在,创建新文件进行写入;
      • b以二进制的方式打开文件,需要与其他模式一起使用:
        • rb二进制格式打开一个文件用于只读。文件指针将会放在文件的开头;
        • wb以二进制格式打开一个文件只用于写入;
      • +以读写的方式打开文件,需要与其他模式一起使用;
    • encoding:文本文件中字符的编写格式,默认为utf-8;
  • 注意:对文件操作结束后使用close()方法关闭系统资源;
常用文件操作方法
方法名说明
read([size])从文件读取指定的字节数,如果未给定或为负则读取所有
readline()读取整行,包括 “n” 字符。
readlines()读取所有行并返回列表,若给定sizeint>0,
返回总和大约为sizeint字节的行,
实际读取值可能比sizeint较大,因为需要填充缓冲区。
write(str)将字符串写入文件,返回的是写入的字符长度。
writelines(s_list)向文件写入一个序列字符串列表,
如果需要换行则要自己加入每行的换行符。
seek(offset[,whence])移动文件读取指针到指定位置
tell()返回文件当前位置。
flush()刷新文件内部缓冲,
直接把内部缓冲区的数据立刻写入文件,
而不是被动的等待输出缓冲区写入
close()关闭文件。关闭后文件不能再进行读写操作
with语句
  • 自动管理上下文资源,不论什么原因跳出with块,都能保证文件正确的关闭,以此来达到释放资源的目的;
  • 语法结构:
    with open('filename', 'r') as file:
        代码块
    
  • 使用with关键字系统会自动调用file.close()方法,with的作用等效于try/finally语句,不论什么情况都会执行文件关闭操作;
  • with语句实现原理建立在上下文管理器之上;
    • 上下文管理器是一个实现__enter__和__exit__方法的类;
    • 使用 with 语句确保在嵌套块的末尾调用__exit__方法。
  • 在文件对象中定义了__enter__和__exit__方法,即文件对象也实现了上下文管理器;
    • 首先调用__enter__方法;
    • 然后执行with语句中的代码;
    • 最后调用__exit__方法;(即使出现错误,也会调用__exit__方法,也就是会关闭文件流)
  • 举例:
    with open("filename.txt","rb") as src_file:
        with open("copy.txt","wb") as target_file:
            target_file.write(src_file.read())
    
    实现文件的复制操作;
OS模块
  • Python内置的与操作系统功能和文件系统相关的模块;
  • 该模块中的语句的执行结果通常与操作系统有关;
  • 在不同的操作系统上运行,得到的结果可能不一样;
  • 可以对文件和目录进行操作;
  • 举例:
    • 调用系统程序
      import os
      os.system("notepad.exe")
      //打开记事本
      os.system("calc.exe")
      //打开计算器
      
    • 调用可执行文件
      import os
      os.startfile("可执行文件的exe文件")
      
  • 常用函数:
    函数名描述
    getcwd()返回当前的工作目录
    listdir(path)返回指定路径下的文件和目录信息
    mkdir(path[,mode])创建目录
    makedirs(path1/path2…[,mode])创建多级目录
    rmdir(path)删除目录
    removedirs(path1/path2…)删除多级目录
    chdir(path)将path设置为当前工作目录
    s.renames(old,new)递归地对目录进行更名,也可以对文件进行更名
os.path模块
  • 举例:
    • 调用系统程序
      import os.path
      print(os.path.abspath(filename.txt))
      //返回对应文件的绝对路径
      
  • 常用函数:
    函数名描述
    abspath(path)用于获取文件或目录的绝对路径
    relpath(path[,start])从start开始计算相对路径
    exists(path)用于判断文件或目录是否存在,
    如果存在返回True;否则返回False;
    join(path,name)将目录与目录或者文件名拼接起来
    split()分离文件目录和文件名
    splitext()分离文件名和扩展名
    basename(path)从一个目录中提取文件名
    dirname(path)从一个路径中提取文件路径,不包括文件名
    isdir(path)用于判断是否为路径
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/822683.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号