day 08 字符编码和文件的读写操作
打开文件的语法
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 字符编码和文件的读写操作的更多相关文章
- 使用字符流(Writer、Reader)完成对文件的读写操作
字符流 字符输出流:Writer,对文件的操作使用子类FileWriter 字符输入流:Reader,对文件的操作使用子类FileReader 每次操作的是一个字符 文件字符操作流会自带缓存,默认大小 ...
- python基础(三)----字符编码以及文件处理
字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程 字符--------(翻译过程)------->数字 这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之 ...
- Python-字典、集合、字符编码、文件操作整理-Day3
1.字典 1.1.为什么有字典: 有个需求,存所有人的信息 这时候列表就不能轻易的表示完全names = ['stone','liang'] 1.2.元组: 定义符号()t = (1,2,3)tupl ...
- 07-Python入门学习-字符编码与文件处理
字符编码 人操作计算机使用人类认识的字符,而计算机存放都是二进制数字所以人在往计算机里输入内容的时候,必然发生: 人类的字符------(字符编码表)-------->数字 比如我输入一个‘上’ ...
- python学习day9 字符编码和文件处理
1.字符编码 x='上' #unicode的二进制--------->编码-------->gbk格式的二进制 res=x.encode('gbk') #bytes 字节类型 print( ...
- Python基础(四)--数据类型、字符编码、文件处理
一.数据类型 1. 数据类型 数字(整形,长整形,浮点型,复数) 字符串 字节串(字节bytes类型) 列表 元组 字典 集合 2. 按照以下几个点展开数据类型的学习 #=============== ...
- python文件操作:字符编码与文件处理
一.字符编码 二.文件处理 一.字符编码 储备知识点: 1. 计算机系统分为三层: 应用程序 操作系统 计算机硬件 2. 运行python程序的三个步骤 1. 先启动python解释器 2. 再将py ...
- python基础知识5---数据类型、字符编码、文件处理
阅读目录 一 引子 二 数字 三 字符串 四 列表 五 元组 六 字典 七 集合 八 数据类型总结 九 运算符 十 字符编码 十一 文件处理 十二 作业 一 引子 1 什么是数据? x=10,10 ...
- Python之字符编码与文件操作
目录 字符编码 Python2和Python3中字符串类型的差别 文件操作 文件操作的方式 文件内光标的移动 文件修改 字符编码 什么是字符编码? ''' 字符编码就是制定的一个将人类的语言的字符与二 ...
随机推荐
- CSS——background-size实现图片自适应
在网页端,我们经常想让图片能够自适应拉伸缩放,使之可以完美的嵌入我们给定的容器里,比如div,button,input,下面我将用代码来说明如何实现这个功能! 一.div背景图自适应 如果知道图片都有 ...
- P1996 约瑟夫问题
P1996 约瑟夫问题 广度优先搜索 我竟然寄几做对了 这个题用到了队列 下面详细解释: 我的代码: #include<iostream> #include<cstdio> # ...
- nginx ssl 卸载功能 第八章
一 .证书自签发和给web 服务签发证书 .ssl 证书加密文件 ****************************** 建立私有CA openCA openssl 证书申请及签署步骤 .生成证 ...
- Html h1-h6 标签
Html h1-h6 标签 <html> <body> <!-- h1-h6标签:标题标签 --> <h1>XSK</h1> <h2& ...
- IP白名单的实现(PHP)
有些项目可能会用到一个IP地址的白名单黑名单之类的验证. 比如,只有IP地址在白名单中,才可以访问该系统. 那么此时,白名单的维护,一般是一个文件,里边是一些IP地址(每行一个IP),当然也有的可能是 ...
- 安装GDB-ImageWatch ,在QT中查看图像
GDB_ImageWatch是在Linux下基于QT编写图像处理程序的调试程序. 由于并非像ImageWatch一样由官方提供,而是在github上以代码的方式进行提供,我们在使用的时候需要自己编译, ...
- 剑指offer(18)二叉树的镜像
题目描述 操作给定的二叉树,将其变换为源二叉树的镜像. 输入描述: 二叉树的镜像定义:源二叉树 8 / \ 6 10 / \ / \ 5 7 9 11 镜像二叉树 8 / \ 10 6 / \ / \ ...
- Spring错误——Spring 单元测试——Test class should have exactly one public constructor
背景:Spring 构建单元测试 错误 java.lang.Exception: Test class should have exactly one public constructor at or ...
- Python入门 更换pip源的方法
pip国内的一些镜像 阿里云 http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple ...
- 20175312 2018-2019-2 《Java程序设计》第5周学习总结
20175312 2018-2019-2 <Java程序设计>第5周学习总结 教材学习内容总结 已依照蓝墨云班课的要求完成了第六章的学习,主要的学习渠道是PPT,和书的课后习题. 总结如下 ...