一、文件操作
1. 只读
1) r
以str形式
f = open('d:\文件操作.txt',mode='r',encoding='utf-8') # r是默认的
content=f.read()
print(content,type(content))
f.close()
2) rb  
#b 表示以bytes形式(bytes类型是以字节为单位处理的,非文字文件上传下载)
f = open('d:\文件操作.txt',mode='rb')
content=f.read()
print(content)
f.close()
2. 只写
# 没有文件就创建文件去写,有源文件将源文件内容覆盖
1) w
#
str形式
f = open('log',mode='w',encoding='utf-8')
f.write('恢复')
f.close()
2) wb  
#以bytes形式(bytes类型是以字节为单位处理的,非文字文件上传下载)
f = open('log',mode='wb')
f.write('粉红色'.encode('utf-8'))
f.close()
3. 追加
1) a
f = open('log',mode='a',encoding='utf-8')
f.write('哈喽')
f.close()
2) ab
f = open('log',mode='ab',) # b 表示以bytes形式(bytes类型是以字节为单位处理的,非文字文件上传下载)
f.write('哈喽哈喽'.encode('utf-8'))
f.close()
4. 先读后写
1) r+
最常用
f = open('log',mode='r+',encoding='utf-8')
print(f.read())
f.write('哈喽哈喽')
f.close()

 2) r+b 以bytes的形式

f = open('log',mode='r+b')
print(f.read())
f.write('哈喽哈喽'.encode('utf-8'))
f.close()
5. 先写后读
1) w+
先把原内容清除,再去写
f = open('log',mode='w+',encoding='utf-8')
f.write('哈喽哈喽')
f.seek(0) #读光标
print(f.read())
f.close()
2) w+b 
以bytes的形式(bytes类型是以字节为单位处理的)
f = open('log',mode='w+b')
f.write('哈喽哈喽'.encode('utf-8'))
f.seek(0)
print(f.read())
f.close()

  6.  追加后读

1) a+
f = open('log',mode='a+',encoding='utf-8')
f.write('哈喽哈喽')
f.seek(0) #读光标
print(f.read())
f.close()
2) a+b
f = open('log',mode='a+b')
f.write('哈喽哈喽'.encode('utf-8'))
f.seek(0) #读光标
print(f.read())
f.close()

二、练习题

用户登录,三次机会

username=input('请输入用户名:')
password=input('请输入密码:')
info_list=[]
with open('user_info',mode='w',encoding='utf-8') as f:
f.write('{}\n{}'.format(username,password))
i=0
while i<3:
usn=input('请输入用户名:')
pwd=input('请输入密码:')
with open('user_info',mode='r+',encoding='utf-8') as f1:
for info in f1:
info_list.append(info)
if usn == info_list[0].strip() and pwd == info_list[1].strip():
print('登陆成功!')
break
else:
print('账号或密码错误!')
i+=1

自学python之路(day5)的更多相关文章

  1. 自学Python之路

    自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的搭建:Pycharm及python安装详细教程    1.3  ...

  2. 自学Python之路-Python核心编程

    自学Python之路-Python核心编程 自学Python之路[第六回]:Python模块       6.1 自学Python6.1-模块简介    6.2 自学Python6.2-类.模块.包  ...

  3. 自学Python之路-Python基础+模块+面向对象+函数

    自学Python之路-Python基础+模块+面向对象+函数 自学Python之路[第一回]:初识Python    1.1 自学Python1.1-简介    1.2 自学Python1.2-环境的 ...

  4. 自学Python之路-django

    自学Python之路-django 自学Python之路[第一回]:1.11.2 1.3

  5. 自学Python之路-Python并发编程+数据库+前端

    自学Python之路-Python并发编程+数据库+前端 自学Python之路[第一回]:1.11.2 1.3

  6. 自学Python之路-Python网络编程

    自学Python之路-Python网络编程 自学Python之路[第一回]:1.11.2 1.3

  7. NO.3:自学python之路------集合、文件操作、函数

    引言 本来计划每周完成一篇Python的自学博客,由于上一篇到这一篇遇到了过年.开学等杂事,导致托更到现在.现在又是一个新的学期,春天也越来越近了(冷到感冒).好了,闲话就说这么多.开始本周的自学Py ...

  8. NO.1:自学python之路------Hello world、判断、循环

    引言 人工智能如今越来越贴近生活,在这里将记录我自学python与tensorflow的过程.编程使用IDE:visual studio 2017,python版本3.6.4,tensorflow版本 ...

  9. Python之路Day5

    一.时间复杂度 (1)时间频度: 一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费的时间就多.一个算法中的语句执行次数称为语句频度或时间频度,记为T(n). (2)时 ...

随机推荐

  1. layer结合art实现弹出功能

    模板 <!-- 模板 --> <script id="render-tpl" type="text/html"> <table c ...

  2. react初探(一)之JSX、状态(state)管理、条件渲染、事件处理

    前言: 最近收到组长通知我们项目组后面新开的项目准备统一技术栈为react,目前我的情况是三大框架只会angular和Vue.在实际项目中只使用过一次angular5,其余项目都是使用Vue写的.写篇 ...

  3. 添加“Git Bash Here”到右键菜单

    1.按键盘上的组合键[Win+R]把运行调出来 2.在运行中输入[regedit]再点击确定. 3.定位到HKEY_CLASSES_ROOT\Directory\Background\shell(如果 ...

  4. toFixed()精度丢失;复选框全选、取消

    一.精度丢失和重写toFixed()函数 1.重写toFixed() Number.prototype.toFixed = function(length){ var carry = 0; //存放进 ...

  5. webdirver.Chrom() selenium webdirver调用谷歌浏览器的问题解决

    第一个坑: 没有将谷歌驱动放到   /usr/local/bin  目录下 第二个坑: 没有将谷歌浏览器.exe放在    /usr/local/bin  目录下(注意:驱动和浏览器在一个路径下才能使 ...

  6. 按照固定字符数切割字符串 基于python的re正则表达式

    def cut_text(text,lenth): textArr = re.findall('.{'+str(lenth)+'}', text) textArr.append(text[(len(t ...

  7. Django_URL

    视图函数介绍 视图一般都写在app的views中,并且视图的第一个参数永远都是request(HttpRequest)对象.这个对象存储了请求过来的所有信息,包括携带的参数以及一些头部信息等.再视图中 ...

  8. Python----unittest discover()方法与执行顺序

    一.Unittest discover()可以根据不同的功能创建不同的测试文件,甚至是不同的测试目录,测试文件中还可以将不同的小功能划分为不同的测试类,在类下编写测试用例,让整体结构更加清晰一般是通过 ...

  9. java字符串根据正则表达式让单词首字母大写

    public class Da { public static void main(String[] args) { String s = "hello_*java_*world" ...

  10. windows搭建redis集群最佳实践

    一.redis的下载安装: (1)下载Redis-x64-3.2.100地址:https://github.com/MicrosoftArchive/redis/releases (2)安装后文件如下 ...