一、文件操作
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. centos7配置consul

    下载wget https://releases.hashicorp.com/consul/1.4.2/consul_1.4.2_linux_amd64.zip解压unzip consul_1.4.2_ ...

  2. day_其他操作符的重载

    #include <iostream> #include <stdlib.h> using namespace std; class A{ public: A(void) { ...

  3. vi编程技巧:

    h #向上j #向左k #向右l #向下a #插入o #插入一行,并在行首开始O #在当前行前插入一行,并在行首开始dd #删除当前行x #删除当前字符yy #复制当前行p #在当前行后面粘贴P #在 ...

  4. Oracle高级查询之over(partition by...)

    现有表,数据如下: eg1:查询年龄第二的队员 通常写法: select * from (select a.*, rownum r from (select t.* from l_student_in ...

  5. MongoDB数据查询 --MongoDB

    1.插入测试数据 use flower db.goods.insert({'goods_name':'Hyacinth',price:10,num:800}) db.goods.insert({goo ...

  6. 集合基本操作 Python DAY2

    集合本身具有两个特性 1.去重  2.关系测试 列表转集合的两种写法: list_1=[1,2,3,4,1,2,7,8,] list_1=set(list_1) #方法二 list_2=set([1, ...

  7. gm图片处理器:The gm/convert binaries can't be found

    今天在使用node处理模块gm的时候,总是无法正常使用,报:The gm/convert binaries can't be found(找不到gm/convert二进制文件) google了一下,发 ...

  8. Adobe Photoshop安装

    Photoshop cc2018安装 Adobe 软件套装已不再以 (Creative Suite) CS命名,而是改成 (Creative Cloud) CC,主推云服务!Adobe CC 套装中总 ...

  9. 创建ajax的步骤

    第1步:创建XMLHttpRequest对象,也就是创建一个异步调用对象. 第2步:创建一个新的HTTP请求,并指定该HTTP请求的方法.URL以及验证信息. 第3步:设置响应HTTP状态变化的函数. ...

  10. WDA基础十七:ALV不同行显示不同下拉

    1.给ALV结构添加VALUE SET字段. 2.初始化时将TYPE_SET字段设置为值范围. METHOD wddoinit . DATA: lo_node TYPE REF TO if_wd_co ...