python文件操作步骤_python打开文件的函数

python文件操作步骤_python打开文件的函数文件操作文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件open(file,mode='r',buffering=-


Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

文件操作

文件操作主要包括对文件内容的读写操作,这些操作是通过文件对象实现的,通过文件对象可以读写文本文件和二进制文件

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

open()函数共有8个参数,其中参数file和mode是最为常用的,其他参数一般情况下很少使用,下面分别说一下这些参数的含义
1.file参数
file参数是要打开的文件,可以是字符串或整数。如果file是字符串表示文件名,文件名可以是相对当前目录的路径,也可以是绝对路径;如果file是整数表示文件描述符,文件描述符指向一个已经打开的文件
 
2.mode参数
设置打开模式,二进制文件设置rb,wb,xb,ab,如果是文本文件,则设置r,w,x,a

  • r:只读模式打开文件(默认)
  • w:写入模式打开文件,会覆盖已经存在的文件
  • x:独占创建模式,文件不存在时创建并以写入模式打开,如果文件已存在则抛出异常
  • a:追加模式,如果文件存在,则写入时内容追加到文件末尾
  • b:二进制模式
  • +:更新模式
  • t:文本模式(默认)
     

3.buffering参数
buffering是设置缓冲区策略,默认值为-1,当buffering=-1时系统会自动设置缓冲区,通常是4096或8192字节;当buffering=0时关闭缓冲区,关闭缓冲区时数据直接写入文件中,这种模式主要用于二进制文件的写入操作;当buffering>0时,buffering用来设置缓冲区字节大小
 

4.encoding
设置文件编码
 

5.errors
用来指定编码发生错误时如何处理
 

6.newline
用来设置换行模式
 

文本文件读写

  • read(size=-1):从文件中读取字符串,size限制最多读取的字符数,size=-1时没有限制,读取全部内容
  • redline(size=-1):读取到换行符或文件尾并返回单行字符串,如果已经到文件尾,则返回一个空字符串,size是限制读取的字符数,size=-1时没有限制
  • readlines(hint=-1):读取文件数据到一个字符串列表中,每一个行数据是列表的一个元素,hint是限制读取的行数,hint=-1时没有限制
  • write(s):将字符串s写入文件,并返回写入的字符数
  • writelines(lines):向文件中写入一个列表,不添加行分隔符,因此通常为每一行末尾提供行分隔符
  • flush():刷新写缓冲区,数据会写入到文件中
     

二进制文件读写

  • read(size=-1):从文件中读取字节,size限制最多读取的字节数,size=-1时没有限制,读取全部字节
  • redline(size=-1):从文件中读取并返回一行,size是限制读取的字节数,size=-1时没有限制
  • readlines(hint=-1):读取文件数据到一个列表中,每一个行数据是列表的一个元素,hint是限制读取的行数,hint=-1时没有限制
  • write(s):写入b字节,并返回写入的字符数
  • writelines(lines):向文件中写入一个列表,不添加行分隔符,因此通常为每一行末尾提供行分隔符
  • flush():刷新写缓冲区,数据会写入到文件中
     

os模块

Python对文件的操作是通过文件对象实现的,如删除文件、修改文件名,创建目录,删除目录和遍历目录,可以通过Python的os模块实现

  • os.rename(src, dst):修改文件名,src是源文件,dst是目标文件,它们都可以是相对路径或者绝对路径
  • os.remove(path):删除path所指的文件,如果path是目录,则会引发OSError
  • os.mkdir(path):创建path所指的目录,如果目录已存在,则会引发FileExistsError
  • os.rmdir(path):删除path所指的目录,如果目录非空,则会引发OSError
  • os.walk(top):遍历top所指的目录树,自顶向下遍历目录树,返回值是一个三元组(目录路径,目录名列表,文件名列表)
  • os.listdir(dir):列出指定目录中的文件和子目录
    常用的属性有以下两种
  • os.curdir属性:获得当前目录
  • os.pardir属性:获得当前父目录
     

os.path模块

  • os.path.abspath(path):返回path的绝对路径
  • os.path.basename(path):返回路径的基础名部分,如果path是指向一个文件,则返回文件名,如果path指向的是一个目录,则返回最后目录名
  • os.path.dirname(path):返回path路径中目录部分
  • os.path.exists(path):判断path文件是否存在
  • os.path.isfile(path):如果path是文件,则返回True
  • os.path.isdir(path):如果path是目录,则返回True
  • os.path.getatime(path):返回最后一次的访问时间,返回值是一个UNIX的时间戳,如果文件不存在或无法访问,则引发OSError
  • os.path.getmtime(path):返回最后修改时间,返回值是一个UNIX的时间戳,如果文件不存在或无法访问,则引发OSError
  • os.path.getctime(path):返回创建时间,返回值是一个UNIX时间戳,如果文件不存在或无法访问,则引发OSError
  • os.path.getsize(path):返回文件大小,以字节为单位,如果文件不存在或无法访问,则引发OSError
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/166204.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 怎么在linux装samba服务器,在linux上装配置samba服务器.doc

    怎么在linux装samba服务器,在linux上装配置samba服务器.doc在linux上装配置samba服务器在linux上安装配置samba服务器在linux上安装配置samba服务器在这给大家介绍一个不错的家伙,samba服务。如果您正在犯愁,如何在Windows和Linux之间实现资源共享,就请看看这篇详解,希望能帮您解决困扰。先简单介绍一下,SMB(ServerMessagesBlock,信息服务块)是在局域网上共享文件和打印机的一种协议,通过它可以使局域网…

    2022年5月21日
  • Linux 常用命令 tar 打包文件夹

    Linux 常用命令 tar 打包文件夹linuxzip压缩。压缩当前文件夹下所有文件,压缩为a.zip。zip-rfileName.zip文件夹名linuxtar打包(可以不压缩哦~)tar命令可以用来压缩打包单文件、多个文件、单个目录、多个目录。单个文件压缩打包tarczvfmy.tarfile1多个文件压缩打包tarczvfmy.tarfile1file2,…单个目…

    2022年5月6日
  • 阿里云cdn要备案吗_未备案域名cdn

    阿里云cdn要备案吗_未备案域名cdncdn需要备案么?需要的,使用国内的cdn节点,必须要有备案才可以做cdn,相关部门为防止cdn滥用,要求必须先备案。国内节点只要是大型数据中心的,基本都要备案。使用CDN产品是需要备案的,但不限制在提供商处备案,只要那么,无备案的网站就无法使用CDN了吗?作为这些网站的站长就只能选择免备案的CDN服务商了,而免备案的CDN加速基本节点都是在海外的。1、选择安全可靠的CDN市面上也有一些提供免费C…

    2022年9月10日
  • Javadb学习 连接Javadb的两种方法 javadb-10_5_1_1.zip[通俗易懂]

    Javadb学习 连接Javadb的两种方法 javadb-10_5_1_1.zip[通俗易懂]Javadb学习环境变量设置:DERBY_HOME=D:\ProgramFiles\Environment\javadbpath=.;%JAVA_HOME%/bin;%path%;%CATALINA_HOME%/bin;%ANT_HOME%/bin;%ANT_HOME%/bin;C:\ProgramFiles\IDMComputerSolutions\UltraEdit\;%JA…

    2022年7月8日
  • cubieboard mysql_Cubieboard A10 安装Nand系统,配置nginx,php,mysql,samba详细教程[通俗易懂]

    cubieboard mysql_Cubieboard A10 安装Nand系统,配置nginx,php,mysql,samba详细教程[通俗易懂]安装前置条件1.下载win32diskimager-v0.7-binary.zip2.下载debian_wheezy_armhf_v1_mele.zip3.下载cubie_nand_uboot_partition_image.zip4.下载FlashFXP.zip5.下载PanasonicSDFormatter.zip6.下载puttyfile_0.62cn.zip以上文件下载地址:http://…

    2022年7月22日
  • npm使用淘宝镜像(npm切换淘宝镜像)

    1.通过cnpm使用淘宝镜像:npminstall-gcnpm–registry=https://registry.npm.taobao.org2.将npm设置为淘宝镜像:npmconfigsetregistryhttps://registry.npm.taobao.org3.查看cnpm镜像设置:cnpmconfiggetregistry

    2022年4月10日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号