打开文件的语法

f=open("test.txt",encoding=:"utf-8") #给系统发送一个指令,让操作系统去打开文件

使用上面的方法打开文件的方式,一定要记得手动的close()文件,否则会一直占用系统的资源

f.close()

打开文件的语法2..在with代码类的执行完毕退出后,会自动调用close(),这是python解释器,为我们提供的方法的方式

with open("test.txt",encoding="utf-8") as f:
  data= f.read()

读取文件

open的三个参数的简介:
参数1:需要打开的文件的路径  可以是绝对路径 也可以是相对路径

参数2: mode 打开文件的模式

参数3encoding 在我的理解,就是读取的文件 是以什么编码存入硬盘的,这里就写什么编码

中文的windows默认是gbk编码,linux默认是utf-8编码

f=open("test.txt","r",encoding="utf-8")

data=f.read()

read()函数可以指定读取文件的大小,如果打开方式是rt模式,则指定的大小为读取的字符数量

        如果打开方式是rb模式,则指定的大小为读取的字节数

  :函数有默认值,如果不给定函数一个值,则使用默认值,( -1 )读取文件的全部内容到内容中

f.readable()  #判断 该返回的文件描述符是否可读

f.writeable() #判断, 该返回的文件描述符是否可写

f.readline() #只会读取一行,如果需要文件的全部内容,需要循环读取文件的内容

f.readlines()  #读取文件的所有内容,放到一个列表当中

写入文件

with oepn("test.txt","w",encoding="utf-8") as f:

  f.write(msg)  #将msg写入文件当中

"w"  模式打开的时候,先将文件清空,然后才会将文件写入

对非文本文件的读写

在操作非文本文件是,必须明确指定模式为字节模块

b  用来指定为字节模式

注意:

b必须与 r\w模式连用, rb(readbytes)\wb

当模式为字节模式时 不能指定encoding参数

默认情况下是读写文本模式, 也就是t模式,需要将r\w连用

t 模式因为是文本读取模式, 所以python解释器会自动进行编码和解码但是b模式不会

#在b模式只能写入字节

with open("test.txt","wb") as f:

  f.write("abs".encode("utf-8"))

  f.write("你好".encode("utf-8"))

因为b模式只能写入字节,所以再将字符串存入非文本文件的时候,必须将字符串编码成字节模式

a:追加模式,文件指针直接跳到文件的末尾,不会清空文件的内容然后将内容写入

+表示可读可写模式,必须和r\w\a联用,不能单独使用"+"

w+:清空源文件,如果不存在则创建

r+:文件如果不存在,则报错

a+:如果不存在则创建,光标移动到文件的末尾,

文件编码的终极奥义:

就是读取文件的编码必须和文件存入硬盘时的编码相同

造成python2中文乱码的原因:

因为在Python2的解释器的原因,那个时候没有unicode,所以代码在读入内存的时候,头文件采取的什么编码方式

解释器在将python的代码当做普通的文本内容读入内存的时候就采用什么编码方式,当解释器在解释python代码的时候

则直接将 文本 的二进制内容,直接放入内存里面,所以再往外输出的时候,如果默认的编码方式,与python代码存入内存

时候的代码不相同,则就会乱码,所以再定义变量的 时候在前面加一个u,则编码的时候采用unicode编码方式(万国码),所以

在读取的时候就不会报错

encoding()  编码

decoding()  解码

day 08 字符编码和文件的读写操作的更多相关文章

  1. 使用字符流(Writer、Reader)完成对文件的读写操作

    字符流 字符输出流:Writer,对文件的操作使用子类FileWriter 字符输入流:Reader,对文件的操作使用子类FileReader 每次操作的是一个字符 文件字符操作流会自带缓存,默认大小 ...

  2. python基础(三)----字符编码以及文件处理

      字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程   字符--------(翻译过程)------->数字   这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之 ...

  3. Python-字典、集合、字符编码、文件操作整理-Day3

    1.字典 1.1.为什么有字典: 有个需求,存所有人的信息 这时候列表就不能轻易的表示完全names = ['stone','liang'] 1.2.元组: 定义符号()t = (1,2,3)tupl ...

  4. 07-Python入门学习-字符编码与文件处理

    字符编码 人操作计算机使用人类认识的字符,而计算机存放都是二进制数字所以人在往计算机里输入内容的时候,必然发生: 人类的字符------(字符编码表)-------->数字 比如我输入一个‘上’ ...

  5. python学习day9 字符编码和文件处理

    1.字符编码 x='上' #unicode的二进制--------->编码-------->gbk格式的二进制 res=x.encode('gbk') #bytes 字节类型 print( ...

  6. Python基础(四)--数据类型、字符编码、文件处理

    一.数据类型 1. 数据类型 数字(整形,长整形,浮点型,复数) 字符串 字节串(字节bytes类型) 列表 元组 字典 集合 2. 按照以下几个点展开数据类型的学习 #=============== ...

  7. python文件操作:字符编码与文件处理

    一.字符编码 二.文件处理 一.字符编码 储备知识点: 1. 计算机系统分为三层: 应用程序 操作系统 计算机硬件 2. 运行python程序的三个步骤 1. 先启动python解释器 2. 再将py ...

  8. python基础知识5---数据类型、字符编码、文件处理

    阅读目录 一 引子 二 数字 三 字符串 四 列表 五 元组 六 字典 七 集合 八 数据类型总结 九 运算符 十 字符编码 十一 文件处理 十二 作业   一 引子 1 什么是数据? x=10,10 ...

  9. Python之字符编码与文件操作

    目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...

随机推荐

  1. spring jar包依赖

  2. 一些sql优化原则

    1.我们在设计表的时候,尽量让字段拥有默认值,尽量不要让字段的值为null. 因为,在 where 子句中对字段进行 null 值判断(is null或is not null)将导致引擎放弃使用索引而 ...

  3. Html br 标签

    Html br 标签 <html> <body> <!-- br标签:跳到下一行--> <p>内<br />容</p> 注:br ...

  4. Linux mail 邮件发送

    Linux mail 邮件介绍 在Linux系统下我们可以通过”mail“命令,发送邮件,在运维中通常我们它来实现邮件告警. 安装 (方案1) 一.安装邮件服务 yum install -y send ...

  5. maven开发项目中遇到的问题

    java.util.concurrent.ExecutionException: org.apache.catalina.LifecycleException: Failed to start com ...

  6. vc++2010如何新建项目并在控制台打印helloworld

    关于写c++使用什么集成开发环境的问题其实挺纠结的.我找了好久找到codeblocks,发现这款IDE还是最适合用在最标准的c++语法环境中.其实先前装过vs2015旗舰版,但是这款软件太大了,非常消 ...

  7. .Net 读取配置文件 xml

    直接解析XML文件 1.System.Xml.Linq命名空间下提供可以使用linq查询的类,使用linq to xml读取也很方便. 2.还可以使用System.Xml.Serialization类 ...

  8. Promise 异步函数的加上外壳终止Promise

    //promise异步函数的请求终止 export default function markCancleble(promise){ let hasCanceled_ = false ; const ...

  9. POJ 3278 抓奶牛(BFS入门题)

    描述 农夫约翰已被告知逃亡牛的位置,并希望立即抓住她.他开始于一个点Ñ(0≤ Ñ ≤100,000)上的数线和牛是在点ķ(0≤ ķ上相同数目的线≤100,000).农夫约翰有两种交通方式:步行和传送. ...

  10. HTTP协议中长连接与短连接的区别

    在HTTP/1.0中, 默认使用的是短连接.也就是说, 浏览器和服务器每进行一次HTTP操作, 就建立一次连接, 但任务结束就中断连接.如果客户端浏览器访问的某个HTML或其他类型的 Web 页中包含 ...