python开发基础:字符编码&文件操作

一,字符编码

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

第一阶段
打开python解释器,notepad++,pychar 加载到内存

第二阶段
写一个文件就是
内存-endoce-bytes(二进制)
显示文件就是
硬盘-decode-unicode(万国码)

第三阶段
执行阶段,针对的是内部定义新的内存空间,例如变量
数据是最先产生于内存中,是unicode格式,要想传输需要转成bytes格式
#unicode----->encode(utf-8)------>bytes
拿到bytes,就可以往文件内存放或者基于网络传输
#bytes------>decode(gbk)------->unicode

二,文件操作

  1 #!/usr/bin/env python
  2 #_*_coding:utf-8_*_
  3
  4 # f=open(r‘aaaa.py‘,encoding=‘utf-8‘) #x=1
  5 # print(‘+++++>1‘,f.read())
  6 # print(type(data))
  7 # print(‘+++++>2‘,f.read())
  8 # print(‘+++++>3‘,f.read())
  9 # f.close()
 10 # print(f)
 11 # f.read()
 12 # # del f
 13
 14 #open:
 15 #1 会向操作系统发起系统调用,操作会打开一个文件
 16 #2 在python程序中会产生一个值指向操作系统打开的那个文件,我们可以把该值赋值一个变量
 17
 18 #回收资源
 19 #1 f.close():一定要做,关闭操作系统打开的文件,即回收操作系统的资源
 20 #2 del f:没必要做,因为在python程序运行完毕后,会自动清理与该程序有关的所有内存空间
 21
 22 #文本文件:只读模式,文件不存在报错
 23 # f=open(r‘字符编码总结‘,‘r‘,encoding=‘utf-8‘)
 24 # print(f.read())
 25 # print(f.readline(),end=‘‘)
 26 # print(f.readlines())
 27 # print(f.readable())
 28 # print(f.writable()) #False
 29 # f.close()
 30
 31 # f=open(r‘111‘,‘r+‘,encoding=‘utf-8‘) #读写的模式,因为r+的写致使光标最末尾
 32 # print(f.read())
 33 # # print(f.tell())
 34 # # print(f.tell())
 35 # print(f.write(‘1‘))
 36 # # print(f.tell())
 37 # print(f.read())
 38 # f.close()
 39
 40 #文本文件:只写模式,文件不存在则创建空文件,文件存在则清空
 41 # f=open(‘new.txt‘,‘w‘,encoding=‘utf-8‘)
 42 # f.write(‘1111111\n‘)
 43 # f.writelines([‘22222\n‘,‘3333\n‘,‘444444\n‘])
 44 # # print(f.writable())
 45 # f.close()
 46
 47 # f=open(‘111‘,‘w+‘,encoding=‘utf-8‘)  #创建文件,读写 注意光标位置,写入文件后读取的时候光标在开头
 48 # print(f.readable())
 49 # f.write(‘hello word‘)
 50 # print(f.seek(0))
 51 # print(f.read())
 52 # f.close()
 53
 54
 55 #文本文件:只追加写模式,文件不存在则创建,文件存在会在末尾追加
 56 # f=open(‘new_2‘,‘a‘,encoding=‘utf-8‘)
 57 # print(f.readable())
 58 # print(f.writable())
 59 # f.write(‘33333\n‘)
 60 # f.write(‘44444\n‘)
 61 # f.writelines([‘5555\n‘,‘6666\n‘])
 62 # f.close()
 63
 64 # f=open(r‘111‘,‘a+‘,encoding=‘utf-8‘) #追加,读写权限,注意光标,因为a的关系,上来默认光标在末尾
 65 # f.seek(0)
 66 # print(f.tell())
 67 # # print(f.read())
 68 # print(f.write(‘heihei‘))
 69 # f.seek(0)
 70 # print(f.tell())
 71 # print(f.read())
 72 # f.close()
 73
 74
 75
 76
 77 #rb
 78 # f=open(‘字符编码总结‘,‘rb‘)
 79 # print(f.read().decode(‘utf-8‘))
 80 # f=open(‘1.jpg‘,‘rb‘)
 81 # data=f.read()
 82
 83 #wb
 84 # f=open(‘2.jpg‘,‘wb‘)
 85 # f.write(data)
 86 # f=open(‘new_3.txt‘,‘wb‘)
 87 # f.write(‘aaaaa\n‘.encode(‘utf-8‘))
 88
 89 #ab
 90 # f=open(‘new_3.txt‘,‘ab‘)
 91 # f.write(‘aaaaa\n‘.encode(‘utf-8‘))
 92
 93
 94 #上下文管理
 95 # with open(‘aaaa.py‘,‘r‘,encoding=‘utf-8‘) as read_f,\
 96 #         open(‘aaaa_new.py‘,‘w‘,encoding=‘utf-8‘) as write_f:
 97 #     data=read_f.read()
 98 #     write_f.write(data)
 99
100
101 #循环取文件每一行内容
102 # with open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as f:
103     # while True:
104     #     line=f.readline()
105     #     if not line:break
106     #     print(line,end=‘‘)
107
108     # lines=f.readlines() #只适用于小文件
109     # print(lines)
110
111     # data=f.read()
112     # print(type(data))
113
114     # for line in f: #推荐使用
115     #     print(line,end=‘‘)
116
117
118 #文件的修改
119 #方式一:只适用于小文件
120 # import os
121 # with open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as read_f,\
122 #         open(‘a.txt.swap‘,‘w‘,encoding=‘utf-8‘) as write_f:
123 #     data=read_f.read()
124 #     write_f.write(data.replace(‘alex_SB‘,‘alex_BSB‘))
125 #
126 # os.remove(‘a.txt‘)
127 # os.rename(‘a.txt.swap‘,‘a.txt‘)
128
129
130 #方式二:
131 # import os
132 # with open(‘a.txt‘,‘r‘,encoding=‘utf-8‘) as read_f,\
133 #         open(‘a.txt.swap‘,‘w‘,encoding=‘utf-8‘) as write_f:
134 #     for line in read_f:
135 #         write_f.write(line.replace(‘alex_BSB‘,‘BB_alex_SB‘))
136 #
137 # os.remove(‘a.txt‘)
138 # os.rename(‘a.txt.swap‘,‘a.txt‘)
139
140 #print(f.read(5))#读五个字符
141 #print(f.tell())#告诉你文件句柄的指针打印出来 按字符个数计数
142 #f.seek(0)#回到光标的开始位置  0可以是其他前面的会被删除显示
143 #print(f.readline())
144 #print(f.encoding)#打印文件编码
145 #print(f.fileno()) #返回一个编号,一个接口,调用操作系统文件的IO
146 #print(f.name)#打印文件名字
147 #print(f.isatty())#终端 tty
148 #print(f.readable())#判断文件是否可读
149 #print(f.writable())#判断文件是否可写
150 #print(f.flush())#刷为了解决文件存在内存然后恶意关闭,其实他是有个内存值,当达到了这个值会直接写到硬盘里面
时间: 07-24

python开发基础:字符编码&文件操作的相关文章

Python——day3_基础1_集合,文件操作,字符编码与转码

集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 常用操作 s = set([3,5,9,10]) #创建一个数值集合 t = set("Hello") #创建一个唯一字符的集合 a = t | s # t 和 s的并集 b = t & s # t 和 s的交集 c = t – s # 求差集(项在t中,但不在s中) d = t ^ s # 对称差集(项在t或s中,但不会同时

Python学习—基础篇之文件操作

文件操作 文件操作也是编程中需要熟练掌握的技能,尤其是在后台接口编写和数据分析过程中,对各种类型的文件进行操作,获取文件信息或者对信息进行存储是十分重要的.本篇博客中将主要对常见的文本格式文件和Excel文件的相关操作进行介绍. 一.文本文件 1.1 文件操作流程 1.打开文件,获得文件句柄,并赋值给一个变量 : 2.通过句柄对文件进行相关操作: 3.关闭文件 示例: 1 # -*- coding:utf-8 -*- 2 # author: cdc 3 # date: 2018/8/23 4 5

python开发基础:元祖操作

一,元祖操作 1 #!/usr/bin/env python 2 #_*_coding:utf-8_*_ 3 4 # 为何要有元组,存放多个值,元组不可变,更多的是用来做查询 5 # 1.元组() 6 # 元组跟列表一样,但是不能增删改,能查.元组又叫只读列表 7 # 2个方法 一个 count 一个 index 8 9 # t=(1,[1,3],'sss',(1,2)) #t=tuple((1,[1,3],'sss',(1,2))) 10 # print(type(t)) 11 12 # #元

Python基础day-5[字符编码,文件处理,函数]

字符编码: 为什么要有字符编码?字符编码是为了让计算机能识别我们人写的字符,因为计算机只认识高低电平,也就是二进制数"0","1". 字符编码其实就是在完成一件,字符====>数字的翻译过程. ASCII: 最早计算机是美国发明的,所以最早诞生的ASCII码也是基于英文考虑的.ASCII码:一个Bytes代表一个字符,1Bytes=bit.最早的ASCII只用到后七位. 127个数字,已经完全能代表键盘了,后来又把127号之后的空位来表示新的字母.符号,还加入

Python中的字符编码问题

初学Python,本身就在一些语句处有些迷惑,如 a = u'你好',不知加上这个Unicode参数有何作用.一直到做爬虫抓取新闻时,在cmd的输出上总是出现错误.经过检索相关知识后,对一些编码问题做个小总结,其中参杂个人猜测,难免会有错误,以后再慢慢修改了. 1.一定要声明#coding=XXX吗? 首先.py文件中,编码默认是ASCII的,一旦py文件中出现了中文类似编码,IDE就会提示 也就是提示文中出现了非ASCII,建议在文件开始制定编码,当然我们常用的是#coding:utf8 (貌

Python自动化开发课堂笔记【Day03】 - Python基础(字符编码使用,文件处理,函数)

字符编码使用 1. 文本编辑器如何存取文件 文本编辑器相当一个运行在内存中的进程,所以文件内容在编辑未存储时都是在内存中的,尚未存储在硬盘之中,在没有保存之前,所编辑的任何文本都只是一堆字符,没有任何逻辑上的意义,当存储文件的时候需要以一定的编码格式存储于硬盘之中,当进行文件读取的时候也需要以同样的编码格式进行读取到内存之中进行操作,如果存储文件的编码和读取文件的编码不一致则会引起读取过程中的乱码导致文件操作失败. P.S. --> Python解释器执行py文件的原理. Step1. Pyth

开发技术--浅谈文件操作与字符编码

开发|浅谈文件操作与字符编码 听说Python的文件操作很容易在某一些电脑上出问题,然而罪魁祸首就是字符编码.让我们来了解一些底层的编码方式. 前言 目前所有的文章思想格式都是:知识+情感. 知识:对于所有的知识点的描述.力求不含任何的自我感情色彩. 情感:用我自己的方式,解读知识点.力求通俗易懂,完美透析知识. 正文 本文主要分为两大部分,一部分是如何使用Python进行文件操作,另一部分是聊一下字符编码的那些事.(比较绕,尽量用最最最通俗的话表述~~) 文件操作 1.文件操作方式 open(

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

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

Python 三级菜单-字符编码和转码-集合的操作-文件的操作

三级菜单: menu = { '北京':{ '海淀':{ '五道口':{ 'soho':{}, '网易':{}, 'google':{} }, '中关村':{ '爱奇艺':{}, '汽车之家':{}, 'youku':{}, }, '上地':{ '百度':{}, }, }, '昌平':{ '沙河':{ '老男孩':{}, '北航':{}, }, '天通苑':{}, '回龙观':{}, }, '朝阳':{}, '东城':{}, }, '上海':{ '闵行':{ "人民广场":{ '炸鸡店