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

设计服务网站建站科技公司

设计服务网站,建站科技公司,沈阳网站备案查询,创意画册设计公司Python open函数详解:打开指定文件 掌握了各种操作目录字符串或目录的函数之后,接下来可以准备读写文件了。在进行文件读写之前,首先要打开文件。 Python 提供了一个内置的 open() 函数,该函数用于打开指定文件。 open() 函数的…

Python open函数详解:打开指定文件 

掌握了各种操作目录字符串或目录的函数之后,接下来可以准备读写文件了。在进行文件读写之前,首先要打开文件。

Python 提供了一个内置的 open() 函数,该函数用于打开指定文件。

open() 函数的语法格式如下:

open(file_name [, access_mode] [, buffering])

在上面的语法格式中,只有第一个参数是必需的,该参数代表要打开文件的路径。access_mode 和 bufering 参数都是可选的。

在打开文件之后,就可调用文件对象的属性和方法了。文件对象支持如下常见的属性:

file.closed:该属性返回文件是否己经关闭。

file.mode:该属性返回被打开文件的访问模式。

file.name:该属性返回文件的名称。

如下程序简单示范了如何打开文件和访问被打开文件的属性:

# 以默认方式打开文件
f = open('open_test.py')
# 访问文件的编码方式
print(f.encoding) # cp936
# 访问文件的访问模式
print(f.mode) # r
# 访问文件是否已经关闭
print(f.closed) # False
# 访问文件对象打开的文件名
print(f.name) # open_test.py

上面程序使用 open() 内置函数打开了 open_test.py 文件,接下来程序访问了被打开文件的各属性。运行上面程序,可以看到如下输出结果:

cp936
r
False
open_test.py

从上面的输出结果可以看出,open() 函数默认打开文件的模式是“r”,也就是只读模式。下面详细讲解 open() 函数支持的不同模式。

文件打开模式

open() 函数支持的文件打开模式如下图所示

模式意义
r只读模式
w写模式
a追加模式
+读写模式,可与其他模式结合使用。比如 r+ 代表读写模式,w+ 也代表读写模式
b二进制模式,可与其他模式结合使用。比如 rb 代表二进制只读模式,rb+ 代表二进制读写模式,ab 代表二进制追加模式

可能有读者感到疑惑,w 本身就代表写模式,w+ 还有什么意义呢?

简单来说,w 只是代表写模式,而 w+ 则代表读写模式,但实际上它们的差别并不大。因为不管是 w 还是 w+ 模式,当使用这两种模式打开指定文件时,open() 函数都会立即清空文件内容,实际上都无法读取文件内容。

根据上面的介绍不难看出,如果希望调用 open() 函数打开指定文件后,该文件中的内容能被保留下来,那么程序就不能使用 w 或 w+ 模式。

 

 Python readline和readlines函数:按行读取文件

如果程序要读取行,通常只能用文本方式来读取,道理很简单,只有文本文件才有行的概念,二进制文件没有所谓行的概念。

文件对象提供了如下两个方法来读取行:

readline([n]):读取一行内容。如果指定了参数 n,则只读取此行内的 n 个字符。

readlines():读取文件内所有行。

下面程序示范了使用 readline() 方法来读取文件内容:

import codecs
# 指定使用utf-8字符集读取文件内容
f = codecs.open("readline_test.py", 'r', 'utf-8', buffering=True)
while True:# 每次读取一行line = f.readline()# 如果没有读到数据,跳出循环if not line: break# 输出lineprint(line, end='')
f.close()

上面程序使用 UTF-8 字符集打开 readline_test.py 文件,这是由于该 Python 源文件是采用 UTF-8 字符集保存的,因此,如果直接用普通的 open() 函数打开文件,则会引发 UnicodeDecodeError 异常。

接下来程序使用 readline() 方法逐行进行读取,当读取到结尾时,该方法将会返回空,程序就会退出循环。

程序也可以使用 readlines() 方法一次读取文件内所有行。例如如下程序:

import codecs
# 指定使用utf-8字符集读取文件内容
f = codecs.open("readlines_test.py", 'r', 'utf-8', buffering=True)
# 使用readlines()读取所有行,返回所有行组成的列表
for 1 in f.readlines():print(1, end='')
f.close()

 

http://www.yayakq.cn/news/975161/

相关文章:

  • 做收费类网站站长乐山市建设局官方网站
  • 十大免费cms建站系统介绍自媒体制作视频教程
  • 免费企业网站程序网站建设咨询公司排名
  • 网站竞争对手的选定一般参考什么标准的新钥匙建站
  • asp网站镜像代码包头网站
  • 上色的网站下载免费wordpress 增加备案
  • 广州网站制作公司排名网页站点的建立流程
  • 制作网站哪家好不动户激活 e路护航安全组件
  • 豆芽网站建设 优帮云巨鹿网站建设多少钱
  • 公司网站建设费用科目平台软件怎么制作开发
  • 买源码做网站简单嘛电商店铺装修设计
  • 制作网站学什么专业简述网页设计的开发流程
  • ionic 做网站友情链接的网站有哪些
  • 分销商城网站开发wordpress安装不了
  • 哪里可以学家装设计师做网站排名优化是怎么回事
  • 太原哪个网站制作最好用十大搜索引擎排行榜
  • 太姥山镇建设的网站网站做seo要多少钱
  • 威海做网站的公司wordpress相册主题
  • 网站图标 psdwordpress链接跳转页面
  • asp网站查看器ant design 做网站
  • 网站建设gong建立wordpress数据库
  • 务川县建设局官方网站潍坊百度seo
  • 医院网站建设要求是什么河曲县城乡建设管理局网站
  • 营销型网站建设价值asp自动获取网站快照 网站缩略图
  • 网站正在建设中中文模板seo哪里有培训
  • 电子商务与网站建设北京微信网站建设报价
  • iapp用网站做的APP无法加载有哪些免费做外贸网站
  • 网站色彩代码做网站域名自己弄
  • 建网站中企动力优做电子请帖网站有哪些
  • 电商网站建设运城wordpress英文企业模板