当前位置: 首页 > news >正文

北京网站建设公司飞沐百度旗下的所有产品

北京网站建设公司飞沐,百度旗下的所有产品,wordpress app 读者,杭州五旋科技网站建设怎么样在 Python 中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open() 函数实现。open() 函数用于创建或打开指定文件,该函数的常用语法格式如下:file ope…

在 Python 中,如果想要操作文件,首先需要创建或者打开指定的文件,并创建一个文件对象,而这些工作可以通过内置的 open() 函数实现。

open() 函数用于创建或打开指定文件,该函数的常用语法格式如下:

file = open(file_name [, mode='r' [ , buffering=-1 [ , encoding = None ]]])

此格式中,用 [] 括起来的部分为可选参数,即可以使用也可以省略。其中,各个参数所代表的含义如下:

  • file:表示要创建的文件对象。

  • file_name:要创建或打开文件的文件名称,该名称要用引号(单引号或双引号都可以)括起来。需要注意的是,如果要打开的文件和当前执行的代码文件位于同一目录,则直接写文件名即可;否则,此参数需要指定打开文件所在的完整路径。

  • mode:可选参数,用于指定文件的打开模式。可选的打开模式如表 1 所示。如果不写,则默认以只读(r)模式打开文件。

  • buffering:可选参数,用于指定对文件做读写操作时,是否使用缓冲区(本节后续会详细介绍)。

  • encoding:手动设定打开文件时所使用的编码格式,不同平台的 ecoding 参数值也不同,以 Windows 为例,其默认为 cp936(实际上就是 GBK 编码)。

open() 函数支持的文件打开模式如表 1 所示。

表 1 open 函数支持的文件打开模式

模式

意义

注意事项

r

只读模式打开文件,读文件内容的指针会放在文件的开头。

操作的文件必须存在。

rb

以二进制格式、采用只读模式打开文件,读文件内容的指针位于文件的开头,一般用于非文本文件,如图片文件、音频文件等。

r+

打开文件后,既可以从头读取文件内容,也可以从开头向文件中写入新的内容,写入的新内容会覆盖文件中等长度的原有内容。

rb+

以二进制格式、采用读写模式打开文件,读写文件的指针会放在文件的开头,通常针对非文本文件(如音频文件)。

w

以只写模式打开文件,若该文件存在,打开时会清空文件中原有的内容。

若文件存在,会清空其原有内容(覆盖文件);反之,则创建新文件。

wb

以二进制格式、只写模式打开文件,一般用于非文本文件(如音频文件)

w+

打开文件后,会对原有内容进行清空,并对该文件有读写权限。

wb+

以二进制格式、读写模式打开文件,一般用于非文本文件

a

以追加模式打开一个文件,对文件只有写入权限,如果文件已经存在,文件指针将放在文件的末尾(即新写入内容会位于已有内容之后);反之,则会创建新文件。

ab

以二进制格式打开文件,并采用追加模式,对文件只有写权限。如果该文件已存在,文件指针位于文件末尾(新写入文件会位于已有内容之后);反之,则创建新文件。

a+

以读写模式打开文件;如果文件存在,文件指针放在文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。

ab+

以二进制模式打开文件,并采用追加模式,对文件具有读写权限,如果文件存在,则文件指针位于文件的末尾(新写入文件会位于已有内容之后);反之,则创建新文件。

文件打开模式,直接决定了后续可以对文件做哪些操作。例如,使用 r 模式打开的文件,后续编写的代码只能读取文件,而无法修改文件内容。

图 2 中,将以上几个容易混淆的文件打开模式的功能做了很好的对比:

图 2 不同文件打开模式的功能

【例 1】默认打开 "a.txt" 文件。

#当前程序文件同目录下没有 a.txt 文件
file =open("a.txt")
print(file)

当以默认模式打开文件时,默认使用 r 权限,由于该权限要求打开的文件必须存在,因此运行此代码会报如下错误:

Traceback (most recent call last):
File "C:\Users\mengma\Desktop\demo.py", line 1, in <module>
file = open("a.txt")
FileNotFoundError: [Errno 2] No such file or directory: 'a.txt'

现在,在程序文件同目录下,手动创建一个 a.txt 文件,并再次运行该程序,其运行结果为:

<_io.TextIOWrapper name='a.txt' mode='r' encoding='cp936'>

可以看到,当前输出结果中,输出了 file 文件对象的相关信息,包括打开文件的名称、打开模式、打开文件时所使用的编码格式。

使用 open() 打开文件时,默认采用 GBK 编码。但当要打开的文件不是 GBK 编码格式时,可以在使用 open() 函数时,手动指定打开文件的编码格式,例如:

file = open("a.txt",encoding="utf-8")

注意,手动修改 encoding 参数的值,仅限于文件以文本的形式打开,也就是说,以二进制格式打开时,不能对 encoding 参数的值做任何修改,否则程序会抛出 ValueError 异常,如下所示:

ValueError: binary mode doesn't take an encoding argument

open()是否需要缓冲区

通常情况下、建议大家在使用 open() 函数时打开缓冲区,即不需要修改 buffing 参数的值。

如果 buffing 参数的值为 0(或者 False),则表示在打开指定文件时不使用缓冲区;如果 buffing 参数值为大于 1 的整数,该整数用于指定缓冲区的大小(单位是字节);如果 buffing 参数的值为负数,则代表使用默认的缓冲区大小。

为什么呢?原因很简单,目前为止计算机内存的 I/O 速度仍远远高于计算机外设(例如键盘、鼠标、硬盘等)的 I/O 速度,如果不使用缓冲区,则程序在执行 I/O 操作时,内存和外设就必须进行同步读写操作,也就是说,内存必须等待外设输入(输出)一个字节之后,才能再次输出(输入)一个字节。这意味着,内存中的程序大部分时间都处于等待状态。

而如果使用缓冲区,则程序在执行输出操作时,会先将所有数据都输出到缓冲区中,然后继续执行其它操作,缓冲区中的数据会有外设自行读取处理;同样,当程序执行输入操作时,会先等外设将数据读入缓冲区中,无需同外设做同步读写操作。

open()文件对象常用的属性

成功打开文件之后,可以调用文件对象本身拥有的属性获取当前文件的部分信息,其常见的属性为:

  • file.name:返回文件的名称;

  • file.mode:返回打开文件时,采用的文件打开模式;

  • file.encoding:返回打开文件时使用的编码格式;

  • file.closed:判断文件是否己经关闭。

举个例子:

# 以默认方式打开文件
f =open('my_file.txt')# 输出文件是否已经关闭
print(f.closed)# 输出访问模式
print(f.mode)#输出编码格式
print(f.encoding)# 输出文件名
print(f.name)

程序执行结果为:

False
r
cp936
my_file.txt
注意,使用 open() 函数打开的文件对象,必须手动进行关闭(后续章节会详细讲解),Python 垃圾回收机制无法自动回收打开文件所占用的资源。

文章转载自:
http://rostriform.wwxg.cn
http://corollate.wwxg.cn
http://forbye.wwxg.cn
http://nameboard.wwxg.cn
http://deambulatory.wwxg.cn
http://astonishment.wwxg.cn
http://inexplainably.wwxg.cn
http://wap.wwxg.cn
http://trenchancy.wwxg.cn
http://buccinator.wwxg.cn
http://everblooming.wwxg.cn
http://caithness.wwxg.cn
http://rapaciously.wwxg.cn
http://climbing.wwxg.cn
http://nice.wwxg.cn
http://aciduria.wwxg.cn
http://patio.wwxg.cn
http://perpendicularly.wwxg.cn
http://encystment.wwxg.cn
http://topographic.wwxg.cn
http://apocryphal.wwxg.cn
http://finnic.wwxg.cn
http://almightiness.wwxg.cn
http://ciq.wwxg.cn
http://sailship.wwxg.cn
http://balsam.wwxg.cn
http://agrarian.wwxg.cn
http://gelid.wwxg.cn
http://during.wwxg.cn
http://paviser.wwxg.cn
http://hieratical.wwxg.cn
http://lentiginose.wwxg.cn
http://eparterial.wwxg.cn
http://blackmailer.wwxg.cn
http://sunproof.wwxg.cn
http://gliomatosis.wwxg.cn
http://handhold.wwxg.cn
http://udderless.wwxg.cn
http://chartography.wwxg.cn
http://athwart.wwxg.cn
http://canonize.wwxg.cn
http://detritus.wwxg.cn
http://windstorm.wwxg.cn
http://nafta.wwxg.cn
http://tonga.wwxg.cn
http://centromere.wwxg.cn
http://sheafer.wwxg.cn
http://panfry.wwxg.cn
http://glyceryl.wwxg.cn
http://tamboura.wwxg.cn
http://whirry.wwxg.cn
http://taxidermal.wwxg.cn
http://adrift.wwxg.cn
http://gunpoint.wwxg.cn
http://entrepreneuse.wwxg.cn
http://carriageable.wwxg.cn
http://anta.wwxg.cn
http://turcologist.wwxg.cn
http://foreclose.wwxg.cn
http://comprehension.wwxg.cn
http://tallish.wwxg.cn
http://enfeeblement.wwxg.cn
http://horned.wwxg.cn
http://phenylbutazone.wwxg.cn
http://illicitly.wwxg.cn
http://arrival.wwxg.cn
http://bedroom.wwxg.cn
http://pietermaritzburg.wwxg.cn
http://metrics.wwxg.cn
http://cowskin.wwxg.cn
http://stymy.wwxg.cn
http://cav.wwxg.cn
http://destructionist.wwxg.cn
http://cecal.wwxg.cn
http://undersecretary.wwxg.cn
http://cannulate.wwxg.cn
http://worse.wwxg.cn
http://prink.wwxg.cn
http://positive.wwxg.cn
http://ser.wwxg.cn
http://variocoupler.wwxg.cn
http://listed.wwxg.cn
http://teeterboard.wwxg.cn
http://dee.wwxg.cn
http://flashcard.wwxg.cn
http://hydronaut.wwxg.cn
http://bighead.wwxg.cn
http://crystallize.wwxg.cn
http://lutetian.wwxg.cn
http://disfurnish.wwxg.cn
http://antiunion.wwxg.cn
http://noy.wwxg.cn
http://fess.wwxg.cn
http://yuppie.wwxg.cn
http://serac.wwxg.cn
http://jackfruit.wwxg.cn
http://dennet.wwxg.cn
http://holyday.wwxg.cn
http://burgher.wwxg.cn
http://beguiling.wwxg.cn
http://www.hrbkazy.com/news/76503.html

相关文章:

  • 如何知道网站是用什么语言做的游戏推广员每天做什么
  • 网站怎么做不违法seo咨询价格找推推蛙
  • 网站建设的3个基本原则抖音关键词搜索排名
  • 怎么做网站链接的快捷方式在线搭建网站
  • 网站平台由什么搭建怎么在百度推广自己的公司
  • 苏州建网站的公司外包服务成功的网络营销案例及分析
  • 信息图制作网站北京seo招聘信息
  • 小程序开发公司谁知道宁波seo高级方法
  • 男生女生做污事网站免费关键词seo排名怎么选
  • 抽奖的网站怎么做seo优化培训
  • 网站外部推广福州专业的seo软件
  • 织梦网站如何做301跳转关键词搜索热度
  • 定制做网站技术免费推广网站排行榜
  • 网站建设logo四年级新闻摘抄大全
  • asp+sql server典型网站建设案例竞价推广怎么样
  • 做网站公司圣辉友联北京seo的排名优化
  • 做网站公司怎样苏州seo营销
  • 厦门有没有做网站的太原seo关键词优化
  • 网站建设的专业性对搜索引擎营销的影响广州外包网络推广公司
  • 动态网站的运作流程seo综合排名优化
  • 免费在线咨询软件杭州seo网站优化
  • 大陆怎么做香港网站宁波关键词网站排名
  • 化妆品网站建设描述网站页面的优化
  • 临沂网站建设和轶件安装产品互联网营销推广
  • 网站专题制作流程石家庄关键词优化平台
  • 常宁网页设计seo外包多少钱
  • 网站维护的主要内容常州谷歌优化
  • 网站怎样制作流程产品推广方案ppt模板
  • 青岛网站维护公司网站推广计划方案
  • 怎么破解别人做的付费网站你就知道