day9 文件处理
day09 文件处理
一、注册与登录功能
username = input('请输入您的密码:').strip()
password = input('请输入您的密码:').strip()
f = open('a.txt',mode='rt',encoding='utf-8')
for line in f:
user,pwd = line.strip('\n').split(':')
if username == user and password = pwd:
print('登陆成功')
break
else:
print('登录失败')
f.close()
二、字符编码
1 什么是字符编码
人类的字符转换成数字的过程称之为字符编码
该过程需要参照一张表,该表称之为字符编码表
编码
人类的字符-----------转换成--------------》数字
解码
人类的字符《-----------转换成--------------数字
2 字符编码表
a--00
b--01
c--10
d--1
ASCII: 用8bit对应一个英文字符
可以识别英文字符
gbk:用16bit对应一个字符
可以识别中文字符、英文字符
shift-JIS:
可以识别日文字符、英文字符
Euc-KR
可以识别韩文字符、英文字符
万国字符编码表:unicode,用16bit位对应一个字符
兼顾两大历史使命
1、可以识别万国字符
2、兼容老的字符编码格式
内存中用的字符编码格式默认都是unicode,而且不能改变
我们可以改的是存入硬盘的字符编码格式
万国字符------------》unicode格式的二进制(内存)---------》utf-8格式的二进制(硬盘)
中文、英文字符------------》unicode格式的二进制(内存)---------》GBK格式的二进制(硬盘)
日文、英文字符------------》unicode格式的二进制(内存)---------》shift-JIS格式的二进制(硬盘)
utf-8全称Unicode Transformation Format,
若想保证不乱码
1、保证存不乱
存入硬盘的编码格式要能识别输入的字符
2、保证读不乱
存取硬盘用得都是同一种字符编码格式
3、往硬盘存的新文件以后都存成utf-8格式
python3解释器默认读文件的编码格式是utf-8
python3解释器默认读文件的编码格式是ASCII
推荐用python3解释器,因为python3解释器存字符串类型的值会存储unicode格式
如果用到python2解释器,记得在字符串类型前加前缀u
三、 文件的打开模式
文件的打开模式分为两大类
一 控制文件读写内容
t(默认):无论读写都是以字符串为单位的,必须指定encoding参数
b:无论读写都是以bytes为单位的
文件读写操作
r(默认):只读模式
w:只写
a:只写(追加写)
rt wt at
rb wb ab
r:如果不存在则报错,如果文件存在则指针置于文件开头
with open('a.txt',mode='rt',encoding='utf-8') as f:
print(f.read())
print('='*50)
print(f.read())
for line in f:
print(line)
f.write("你好") # 报错
w:如果不存在则创建空文档,如果文件存在则清空,指针置于文件开头
with open('a.txt',mode='wt',encoding='utf-8') as f:
f.write("你好啊1\n")
f.write("你好啊2\n")
f.write("你好啊3\n")
print(f.read()) # 报错
a:如果不存在则创建空文档,如果文件存在则清空,指针置于文件末尾
with open('c.txt',mode='at',encoding='utf-8') as f:
f.write("你好啊1\n")
f.write("你好啊2\n")
f.write("你好啊3\n")
print(f.read()) # 报错
day9 文件处理的更多相关文章
- day9文件操作---从即日起时景丽阳老师给我们讲课
今天的主要内容是文件的操作,读,写,只读只写,或者可读同时可写,追加写,以二进制的方式读,以二进制的方式写,以二进制的方式追加. 思维导图: 给你一个文件路径,从中找出所有的文件,方法如下: # 方法 ...
- 【学习笔记】--- 老男孩学Python,day9, 文件操作
有 + 就是有光标,注意光标位置 不同模式打开文件的完全列表: http://www.runoob.com/python/python-files-io.html 模式 描述 r 以只读方式打开文件 ...
- day9 文件的读取
文件操作 一.打开文件 f = open('歌词.txt','w',encoding='utf-8') # f:文件操作符 文件句柄 文件操作对象 open打开文件是依赖了操作系统提供的途径 操作系统 ...
- python学习day9 字符编码和文件处理
1.字符编码 x='上' #unicode的二进制--------->编码-------->gbk格式的二进制 res=x.encode('gbk') #bytes 字节类型 print( ...
- day9 python学习 文件的操作 读 写 seek
文件的操作 1 文件的打开操作: 文件句柄 = open('文件路径', '模式') f=open('wangyakun','a+',encoding='utf-8') #文件名, 如果是绝对路径 ...
- day9笔记--文件操作
文件操作 计算机系统分为:计算机硬件,操作系统,应用程序三部分. 我们用python或其他语言编写的应用程序若想要把数据永久保存下来,必须要保存于硬盘中,这就涉及到应用程序要操作硬件,众所周知,应用 ...
- day9 修改文件
# 修改文件 # 文件是不能修改 with open('小护士班主任', mode='r', encoding='utf-') as f, open('小护士班主任.bak', 'w', encodi ...
- day9 python之文件操作
1.文件操作 1.1 基本模式 # 格式 f = open("相对路径/绝对路径",mode = "模式",encoding = "编码级" ...
- day9.关于文件的操作
一.文件操作 """ fp = open("文件名",mode="模式",encoding="utf-8") ...
随机推荐
- 升级 dubbo 小心 default.version
上周遇到个关于升级dubbo 2.6 到2.7的兼容性问题,差点造成线上故障,这里记录下,也给大家提个醒. 问题回放 有一个接口的提供方(dubbo 2.6.6)这么配置接口的版本号 <dubb ...
- 数组中出现次数超过一半的数字 牛客网 剑指Offer
数组中出现次数超过一半的数字 牛客网 剑指Offer 题目描述 数组中有一个数字出现的次数超过数组长度的一半,请找出这个数字.例如输入一个长度为9的数组{1,2,3,2,2,2,5,4,2}.由于数字 ...
- insertion-sort-list leetcode C++
Sort a linked list using insertion sort. C++ /** * Definition for singly-linked list. * struct ListN ...
- 四种 AI 技术方案,教你拥有自己的 Avatar 形象
大火的 Avatar到底是什么 ? 随着元宇宙概念的大火,Avatar 这个词也开始越来越多出现在人们的视野.2009 年,一部由詹姆斯・卡梅隆执导 3D 科幻大片<阿凡达>让很多人认识了 ...
- virtualbox + vagrant 安装centos7 以及 vagrant up下载太慢的解决方案
下载安装 virtualbox下载 vagrant下载 下载启动镜像vagrant up有下载过慢的问题,可以到网页vagrant镜像仓库,找到自己需要的镜像,选择virtualbox版本下载 下载好 ...
- Invalid prop: type check failed for prop "xxx". Expected Number, got String.
在子组件progress-circle.vue的template中的定义如下: <svg :width="radius" :height="radius" ...
- rz安装
rpm -ivh http://www.rpmfind.net/linux/centos/6.10/os/x86_64/Packages/lrzsz-0.12.20-27.1.el6.x86_64.r ...
- 这一次,Google 终于对 Web 自动化下手了!
大家好,我是安果! 最近 Google 对 Chrome 进行了一次比较大的更新,其中一项是脚本录制回放功能,它可以非常方便我们处理一些自动化场景 我们可以在 Chrome 官网下载 Chrome C ...
- Spark面试题(八)——Spark的Shuffle配置调优
Spark系列面试题 Spark面试题(一) Spark面试题(二) Spark面试题(三) Spark面试题(四) Spark面试题(五)--数据倾斜调优 Spark面试题(六)--Spark资源调 ...
- AOP实现方式一
1.创建相应的类 2.代码 service沿用前面的 增加两个log Log.java package com.shao.log; import org.springframework.aop.Met ...