字符编码与文件处理

字符编码

1 以什么编码存的就要以什么编码取出
ps:内存固定使用unicode编码,
我们可以控制的编码是往硬盘存放或者基于网络传输选择编码

2 数据是最先产生于内存中,是unicode格式,要想传输需要转成bytes格式
#unicode----->encode(utf-8)------>bytes
拿到bytes,就可以往文件内存放或者基于网络传输
#bytes------>decode(gbk)------->unicode

3 python3中字符串被识别成unicode
python3中的字符串encode得到bytes

4 了解
python2中的字符串就bytes
python2中在字符串前加u,就是unicode

文件处理

文件处理流程

打开文件,得到文件句柄并赋值给一个变量------->通过句柄对文件进行操作------->关闭文件

读文件:

f=open(r‘aaaa.py‘,‘r‘,encoding=‘utf-8‘)print(f.readline(),end=‘‘)      #读取一行,print(f.readlines())       #读取全部,不换行print(f.readable())       #可读文件print(f.writable())       #不可写文件f.close()       #结束之后必须关闭,否则占用内存写文件:
f=open(‘new.txt‘,‘w‘,encoding=‘utf-8‘)f.write(‘1111111111\n‘)      #写入第一行f.writelines([‘2222\n‘,‘3333\n‘,‘4444\n‘])      #添加多行print(f.writable())       #可写f.close()追加:
f=open(‘new_2‘,‘a‘,encoding=‘utf-8‘)print(f.readable())         #不可读print(f.writable())         #可写f.write(‘888888\n‘)       #追加单行f.write(‘999999\n‘)f.writelines([‘787878\n‘,‘878787\n‘])       #追加多行f.close()
#rb
f=open(‘aaaa.py‘,‘rb‘)    #以字节打开print(f.read().decode(‘utf-8‘))拷贝图片
f=open(‘1.jpg‘,‘rb‘)      #以rb的方式打开1.JPGdata=f.read()           #data获取读取到f的内容print(data)f2=open(‘3.jpg‘,‘wb‘)      #以写的方式打开f2.write(data)         #把data的内容写到f2f2.close()f.close()
#ab,以二进制的形式追加f=open(‘new_3.txt‘,‘ab‘)f.write(‘aaaaa\n‘.encode(‘utf-8‘))
上下文管理with open(‘aaaa.py‘,‘r‘,encoding=‘utf-8‘) as read_f,\        open(‘aaaa_new.py‘,‘w‘,encoding=‘utf-8‘) as write_f:    data=read_f.read()    write_f.write(data)
循环取文件每一行内容with open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as f:    while True:        line=f.readline()        if not line:break        print(line,end=‘‘)

lines=f.readlines() #只适用于小文件    print(lines)

data=f.read()    print(type(data))

for line in f: #推荐使用        print(line,end=‘‘)
文件的修改方式一:只适用于小文件import oswith open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as read_f,\        open(‘a.txt.swap‘,‘w‘,encoding=‘utf-8‘) as write_f:    data=read_f.read()    write_f.write(data.replace(‘alex_SB‘,‘alex_BSB‘))

os.remove(‘a.txt‘)os.rename(‘a.txt.swap‘,‘a.txt‘)
#方式二:import oswith open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as read_f,\        open(‘a.txt.swap‘,‘w‘,encoding=‘utf-8‘) as write_f:    for line in read_f:        write_f.write(line.replace(‘alex_BSB‘,‘BB_alex_SB‘))

os.remove(‘a.txt‘)os.rename(‘a.txt.swap‘,‘a.txt‘)

打开文件的模式有:

  • r ,只读模式【默认模式,文件必须存在,不存在则抛出异常】
  • w,只写模式【不可读;不存在则创建;存在则清空内容】
  • x, 只写模式【不可读;不存在则创建,存在则报错】
  • a, 追加模式【可读;   不存在则创建;存在则只追加内容】

"+" 表示可以同时读写某个文件

  • r+, 读写【可读,可写】
  • w+,写读【可读,可写】
  • x+ ,写读【可读,可写】
  • a+, 写读【可读,可写】

"b"表示以字节的方式操作

  • rb  或 r+b
  • wb 或 w+b
  • xb 或 w+b
  • ab 或 a+b

注:以b方式打开时,读取到的内容是字节类型,写入时也需要提供字节类型,不能指定编码

				
时间: 2024-11-13 03:53:26

字符编码与文件处理的相关文章

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

字符编码与文件处理 一.字符编码 由字符翻译成二进制数字的过程 字符--------(翻译过程)------->数字 这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码. 字符编码的发展史 阶段一:现代计算机起源于美国,最早诞生也是基于英文考虑的ASCII ASCII:一个Bytes代表一个字符(英文字符/键盘上的所有其他字符),1Bytes=8bit,8bit可以表示0-2**8-1种变化,即可以表示256个字符 ASCII最初只用了后七位,127个数字,已经完全能够代

python6期 字符编码与文件处理

字符编码与文件处理 一    了解字符编码的储备知识 python解释器和文件本编辑的异同      相同点:python解释器是解释执行文件内容的,因而python解释器具备读py文件的功能,这一点与文本编辑器一样 不同点:文本编辑器将文件内容读入内存后,是为了显示/编辑,而python解释器将文件内容读入内存后,是为了执行(识别python语法) 二  什么是字符编码 所谓的字符编码就是让计算机读懂人类的字符 必须经过一个过程: 字符--------(翻译过程)------->数字 这个过程

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

1.字典 1.1.为什么有字典: 有个需求,存所有人的信息 这时候列表就不能轻易的表示完全names = ['stone','liang'] 1.2.元组: 定义符号()t = (1,2,3)tuple 是元组的意思列表与元组不一样的地方是它 元组不可以修改元组其实跟列表差不多,也是存一组数,只不是它一旦创建,便不能再修改,所以又叫只读列表 语法 names = ("alex","jack","eric") 它只有2个方法,一个是count,一个

字符编码、文件操作、函数定义

一.字符编码 字符串是一种数据类型,但是,字符串比较特殊的是还有一个编码问题. 因为计算机只能处理数字,如果要处理文本,就必须先把文本转换为数字才能处理.最早的计算机在设计时采用8个比特(bit)作为一个字节(byte),所以,一个字节能表示的最大的整数就是255(二进制11111111=十进制255),如果要表示更大的整数,就必须用更多的字节.比如两个字节可以表示的最大整数是65535,4个字节可以表示的最大整数是4294967295. 由于计算机是美国人发明的,因此,最早只有127个字符被编

字符编码和文件处理

一.字符编码 1.用什么编码encode就用什么解码decode ps:内存固定使用unicode编码 我们可以控制的编码是往硬盘存放或基于网络传输 python3解释器默认的字符编码是utf-8 py2解释器默认的字符编码是ASCII 2.数据最先产生于内存,是unicode格式,要想传输需转成bytes格式 #unicode-------->encode(utf-8)----------->bytes 拿到bytes就可以往文件存放或基于网络传输 #bytes------->deco

Python基础(字符编码与文件处理)

一.了解字符编码的知识储备 1.计算机基础知识(三副图) 2.文本编辑器存取文件的原理(notepad++,Pycharm,word) 打开编辑器就启动了一个进程,是在内存中运行的,所以在编辑器写的内容在没保存之前都是存放在内存中的,断电后数据就会丢失.因而需要保存到硬盘上,点击保存按钮,就从内存中把数据刷到硬盘上. 3.Python解释器执行py文件的与原理,例如python test.py 第一阶段:python解释器启动,此时就相当于启动了一个文本编辑器. 第二阶段:python解释器相当

day 10 字符编码和文件处理 细节整理

pycharm是文本编辑器. 1 .字符编码: 字符====== (翻译过程)=======>数字. utf-8是unicode的变种,是万国编码.  2. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后数据丢失 因而需要保存到硬盘上,点击保存按钮,就从内存中把数据刷到了硬盘上. 在这一点上,我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字

字符编码及文件操作

一,字符编码 1,什么是字符编码 计算机要想工作必须通电,也就是说'电'驱使计算机干活,而'电'的特性,就是高低电平(高低平即二进制数1,低电平即二进制数0),也就是说计算机只认识数字 很明显,我们平时在使用计算机时,用的都是人类能读懂的字符(用高级语言编程的结果也无非是在文件内写了一堆字符),如何能让计算机读懂人类的字符? 必须经过一个过程: 字符--------(翻译过程)------->数字 这个过程实际就是一个字符如何对应一个特定数字的标准,这个标准称之为字符编码 2,字符编码的使用 上

day10 字符编码和文件处理

一.字符编码: 一 了解字符编码的知识储备   1. 计算机基础知识(三幅图)       2. 文本编辑器存取文件的原理(nodepad++,pycharm,word) 打开编辑器就打开了启动了一个进程,是在内存中的,所以在编辑器编写的内容也都是存放与内存中的,断电后数据丢失 因而需要保存到硬盘上,点击保存按钮,就从内存中把数据刷到了硬盘上. 在这一点上,我们编写一个py文件(没有执行),跟编写其他文件没有任何区别,都只是在编写一堆字符而已.  3. python解释器执行py文件的原理 ,例

python第三天:字符编码、文件操作、函数

作业问题回顾 表格化输出 主要考察字符串的expandtabs的方法,使用空格替换TAB. 百鸡百钱 百鸡百钱的主要是用进行多次判断,然后输出打印. 上课内容 字符编码 概念 编码是计算机用来将人类可读的字符存储成二进制信息而使用的一种格式.字符编码主要针对字符的编码. python中相关的方法 decode:解码,将其他格式的数据转化为unicode格式的数据.转化以后就是Bytes类型的数据.Bytes的数据汉字会转化成字节码,而ascii码会转化成b'meg'的形式.可以接参数,接的参数就