文件的打开方式 | 学习笔记

简介: 快速学习 文件的打开方式

开发者学堂课程【Python入门 2020年版文件的打开方式】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/639/detail/10397


文件的打开方式


内容简介

一、回顾

二、三种主要模式

三、其它模式


一、回顾

在上次讲了 open 的参数,有 filemode encoding

# file:用来指定打开的文件(不是文件的名字,而是文件的路径)

#mode :打开文件时的模式,默认是 r 表示只读。

#encoding:打开文件时的编码方式。


二、三种主要模式

mode 指的是打开文件的打开方式

打开方式有:

1r:只读模式,默认,打开文件以后,只能读取不能写入。如果文件不存在,会报错。

输入代码

file=open('xxx.txt','r')

print(file.read())

file.close()

运行结果为 今天天气好晴朗

这时可以读到该内容,但是现在是否可以进行写入呢?注释掉 print(file.read()),输入

file.write('hello')再来运行,结果会报错,显示 io.UnsupportedOperation: not writable 不能够写入,不能执行写入操作,会报错

注释掉以上代码再来输入

file=open('xs.txt','r')

file.close()

该文件不存在,试着运行,结果显示报错

2w:写入模式,打开文件以后只能写入,不能读取。如果文件存在,会覆盖文件;如果文件不存在,会创建文件。

输入代码:

file=open('xxx.txt','w')

file.read()

file.close()

运行报错显示:not readable  不能够执行读取,会报错

另外此时是以 w 打开 xxx 文件,打开后没有内容,会覆盖掉,再来写入内容:输入

file.write('hello')

xxx.txt 文件中会显示出 hello

如果不存在,例如输入

file=open('yyy.txt','w')

本来文件不存在,运行以后,新建了一个 yyy 文件

3b:以二进制的形式打开文件,可以用来操作非文本文件。

rb:以二进制读取     wb:以二进制写入

现在 xxx.txt 中将 hello 修改为你好,然后继续输入代码:

file=open('xxx.txt','rb')

print(file.read())

运行结果显示 b’\xc4\xe3\xba\xc3’,读取的结果是二进制

再来输入

file=open('xxx.txt','wb')

file.write('大家好才是真的好')

运行结果报错,TypeError: a bytes-like object is required,

not’str’,只能写入二进制,修改代码为

file.write('大家好才是真的好'.encode('utf8'))

运行后查看 xxx.txt 结果就显示为 大家好才是真的好

(思考 wb 二进制有什么用?

我们现在读的文本都是文字,如果现在想要加载一个图片,像类似这种读一些非文字就可以使用二进制)


三、其它模式

1a:追加模式,会在最后追加内容。如果文件不存在,会创建文件;如果文件存在,会追加

2r+:可读写。如果文件不存在,会报错

3w+:可读写。如果文件存在,会覆盖文件;如果文件不存在,会创建文件。这两种可读可写方式不常用。在开发时,不会使用这类操作。存在一个指针问题,先来输入代码演示:

file=open('yyy.txt','w+')

print(file.read())

file.close()

yyy.txt 中添加内容:呵呵呵,我是 yyy

再来运行,结果未报错,但是无内容,此时 yyy.txt 中页无内容,被覆盖再来添加代码:

file.write('哈哈哈')

运行结果仍没有内容,但是 yyy.txt 中存在哈哈哈

因为在 yyy.txt 中输入哈哈哈时,光标在最后,所以读不到东西

如果需要可以添加:

file.seek(0,0)  

运行结果就为哈哈哈

写入之后,文件指针到最后,需要调用 seek 将文件指针重置到开头

w+、r+此类操作不常用,一般情况下只做单一的文件操作,要么读要么写

此外还有一些别的形式可以了解:

a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

ab:以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。

rb+:以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。

相关文章
xltd文件怎么打开?教你xltd格式文件打开方法
xltd文件怎么打开?教你xltd格式文件打开方法
1278 0
|
7月前
记事本有哪些常见的应用案例?
记事本有哪些常见的应用案例?
100 4
|
7月前
|
安全
如何打开WindowsApps文件夹
如何打开WindowsApps文件夹
120 1
clipboardjs复制到粘贴板
clipboardjs复制到粘贴板
63 0
|
XML 存储 移动开发
前端文件下载的正确打开方式
前端涉及到的文件下载还是很多应用场景的,那么前端文件下载有多少种方式呢?每种方式有什么优缺点呢?下面就来一一介绍。
183 0
|
XML 数据格式
小工具:批量替换文件夹下所有文件内容中的指定词
函数作用:找出某文件夹下的包含指定关键词文件列表,并将关键字修改为目标字并将新内容保存至源文件
397 0
|
Windows
Win系统 - 文件夹或文件已在另一程序中打开怎么办?
Win系统 - 文件夹或文件已在另一程序中打开怎么办?
616 0
Win系统 - 文件夹或文件已在另一程序中打开怎么办?
|
Windows
IntellJ_打开选中的文件所在的文件夹
方法(一)最简单 idea 打开 setting 找到keymap 搜索 show in explorer 右键设置一个快捷键  我一般设置 alt + v 然后点击项目其中一个文件位置 比如我点击一个 hellowworld.class  然后我按 alt +v 就会自己打开他在本地的位置 方法(二)比方法一 详细 MyEclipse中工具栏有个功能,选中项目中的某个文件,单击按钮可以打开此文件(或目录) 在windows资源管理器中的位置。
1236 0