学习python课程第八天

一.文件操作:

1: 基本概念打开文件的模式有三种纯净模式:r(默认的) w a

控制操作文件内容格式的两种模式:t(默认的) b大前提: tb模式均不能单独使用,必须与纯净模式结合使用t文本模式:  1. 读写文件都是以字符串为单位的  2. 只能针对文本文件  3. 必须指定encoding参数b二进制模式:  1.读写文件都是以bytes/二进制为单位的  2. 可以针对所有文件  3. 一定不能指定encoding参数
2. 打开文件模式详解1. r只读模式: 在文件不存在时则报错,文件存在文件内指针直接跳到文件开头with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:    print(f.readlines())

用户认证功能inp_name=input(‘请输入你的名字: ‘).strip()inp_pwd=input(‘请输入你的密码: ‘).strip()with open(r‘db.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:    for line in f:        # 把用户输入的名字与密码与读出内容做比对        u,p=line.strip(‘\n‘).split(‘:‘)        if inp_name == u and inp_pwd == p:            print(‘登录成功‘)            break    else:        print(‘账号名或者密码错误‘)
3. w只写模式: 在文件不存在时会创建空文档,文件存在会清空文件,文件指针跑到文件开头with open(‘b.txt‘,mode=‘wt‘,encoding=‘utf-8‘) as f:    print(f.writable())    print(f.readable())    f.write(‘你好\n‘)    f.write(‘我好\n‘) # 强调:在文件不关闭的清空下,后写的内容一定跟着前写内容的后面    f.write(‘大家好\n‘)    f.write(‘111\n222\n333\n‘)

lines=[‘1111‘,‘22222‘,‘33333‘]    for line in lines:        f.write(line)    f.writelines(lines)

注册功能:name=input(‘请输入用户名>>:‘).strip()pwe =input(‘请输入密码>>:‘).strip()with open(‘db.txt‘,mode=‘at‘,encoding‘utf-8‘) as f:  for line in f:
    info=‘%s:%s \n‘ %(name,pwe)    f.write(info)
4. a只追加写模式: 在文件不存在时会创建空文档,文件存在会将文件指针直接移动到文件末尾with open(‘c.txt‘,mode=‘at‘,encoding=‘utf-8‘) as f:    f.write(‘44444\n‘)    f.write(‘55555\n‘)    print(f.readable())    print(f.writable())

5.  r+ w+ a+    with open(‘a.txt‘,mode=‘r+t‘,encoding=‘utf-8‘) as f:      print(f.readable())      print(f.writable())      print(f.readline())      f.write(‘你好啊‘)r+ w+ a+ (都是能读能写的模式)
b: 读写都是以二进制位单位with open(‘b.txt‘,mode=‘rb‘) as f:    data=f.read()    print(data,type(data))    print(data.decode(‘utf-8‘))

with open(‘1.png‘,mode=‘rb‘) as f:    data=f.read()    print(data)

with open(‘d.txt‘,‘wb‘) as f:    f.write(‘你好‘.encode(‘gbk‘))

with open(‘1.png‘,mode=‘rb‘) as f:    data=f.read()

with open(‘2.png‘,mode=‘wb‘) as f:    f.write(data)

 拷贝工具src_file=input(‘源文件路径: ‘).strip()dst_file=input(‘目标文件路径: ‘).strip()with open(r‘%s‘ %src_file,mode=‘rb‘) as read_f,open(r‘%s‘ %dst_file,mode=‘wb‘) as write_f:    for line in read_f:        # print(line)        write_f.write(line)(非常快速的拷贝方式)

#掌握
f.read() #读取所有内容,光标移动到文件末尾
f.readline() #读取一行内容,光标移动到第二行首部
f.readlines() #读取每一行内容,存放于列表中

f.write(‘1111\n222\n‘) #针对文本模式的写,需要自己写换行符
f.write(‘1111\n222\n‘.encode(‘utf-8‘)) #针对b模式的写,需要自己写换行符
f.writelines([‘333\n‘,‘444\n‘]) #文件模式
f.writelines([bytes(‘333\n‘,encoding=‘utf-8‘),‘444\n‘.encode(‘utf-8‘)]) #b模式

#了解
f.readable() #文件是否可读
f.writable() #文件是否可读
f.closed #文件是否关闭
f.encoding #如果文件打开模式为b,则没有该属性
f.flush() #立刻将文件内容从内存刷到硬盘
f.name


原文地址:https://www.cnblogs.com/lvyipin1/p/9683455.html

时间: 2024-11-02 05:05:02

学习python课程第八天的相关文章

【如何学习Python课程】

一.学习流程方法 1,学习流程方法. 按照视频流程走. 视频稍微有点基础,视频加快速度. 熟悉的同学. 记笔记的形式多 做作业遇到问题记下来,画流程图再写. 二.如何使你的python提高更快 2,如何使你的python提高更快. 调整听说读写顺序. 听.写.读.说 听:加速听 写:1,画流程图:2,写好代码的框架(最小可用原则,调试debug(往产品方向打造): 读:读别人代码和书.先定个小目标(读不下去也得读) 说:给别人讲一遍. 课余练习 1,有意识的和有目的进行练习掌握核心技能. 2,练

学习python课程第十九天

一.   各种序列化模块 一.  pickle 模块 pickle是一个用来序列化的模块 序列化是什么? 指的是将内存中的数据结构转化为一种中间格式, 并储存到硬盘上, 反序列化? 将硬盘上存储的中间格式数据在还原为内存中的数据结构 为什么要序列化? 就是为了将数据持久储存 之前学过的文件也能完成持久化存储, 但是操作起来非常麻烦 pickle模块的主要功能 dump   load   dumps   loads dump 是序列化.  load是反序列化 不带s的是帮你封装好 write 和

学习python课程第二十三天

一.    组合 : 1. 什么是组合 ? 一个对象的属性是来自于另外一个类的对象, 称之为组合. (跟继承其实很相似.都是共用一个类里面的属性) 2. 为何用组合 ? 组合也是用来解决类与类代码冗余的问题. 3. 如何用组合 ? class Foo: aaa=1111 def __init__(self,x,y): self.x=x self.y=y def func1(self): print('Foo内的功能') class Bar: bbb=2222 def __init__(self,

学习python课程第十五天

一. 什么是模块? 模块是一组相关功能的集合体,一个模块其实就是一个py文件, python中的一个功能就是一个函数. 例如:mymodule.py 文件名为 mymodule.py 模块名为 mymodule 模块也分为四类: 1,自定义模块 创建一个py文件.把一堆函数写进去就是一个模块. 2.c语言编写并连接到python解释器的内置模块 time模块. time.sleep()功能 等. 内置的模块能不能满足你所有的需求? 不可能. 所以你必然会自己定义模块 这时候就会出现这样一个情况

学习python课程第二十二天

一 .   类的继承与派生 : 1. 什么是继承: 在程序中继承是一种新建子类的方式, 新创建的类称之为子类,或者派生类. 被继承的类称之为父类, 继承描述的是一种遗传关系, 子类可以重用父类的属性. 2. 为何要用继承 : 继承可以减少类与类之间代码冗余的问题. 3. 如何继承 : 先抽象,再继承 抽象 :抽取出比较像的部分.. 最主要的作用是划分类别 (可以隔离关注点, 降低复杂度.) 继承 :是基于抽象的结果,通过编程语言去实现它. 肯定是先经历抽象这个过程,才能通过继承的方式去表示 出抽

学习Linux课程第八天

今天的课程还是很好理解的(下午预习了),先回顾一下知识点 一.文件系统 Ext3:是一款日志文件系统,能够在系统异常宕机时避免文件系统资料丢失,并能自动修复数据的不一致与错误.主要用于RHEL5 Ext4:Ext3的改进版本,作为RHEL 6系统中的默认文件管理系统,它支持的存储容量高达1EB(1EB=1,073,741,824GB),且能够有无限多的子目录.用于RHEL6 XFS:是一种高性能的日志文件系统,而且是RHEL 7中默认的文件管理系统,它的优势在发生意外宕机后尤其明显,即可以快速地

学习python课程第十二天

一. 装饰器: 1 什么是装饰器 器=>工具 装饰=>指的是为被装饰对象添加新功能 装饰器本身可以是任意可调用的对象=>函数 被装饰的对象也可以是任意可调用的对象=>函数 目标:写一个函数来为另外一个函数添加新功能 2 为何要用装饰器 开放封闭原则: 软件一旦上线就应该对修改封闭,对扩展开放 对修改封闭: 1. 不能修改功能的源代码 2. 也不能修改功能的调用方式 对扩展开发: 可以为原有的功能添加新的功能 装饰器就是要在不修改功能源代码以及调用方式的前提下为原功能添加额外新的功能

学习python课程第十六天

一.    包: 1.什么是包: 包就是含有一个__init__.py文件的文件夹,它把所有模块都给组织起来. 强调:在python3中,即使没有__init__.py文件,也不会报错.但是在python2中就会报错. 创建包的目的不是为了运行, 而是被导入使用. 记住, 包只是模块的一种形式而已.包的本质就是一种模块. 2.为何要使用包: 1.包的本质就是一个文件夹,那么文件夹唯一的功能就是将文件组织起来. 随着功能越写越多.我们无法将所有功能都放到一个文件中.于是我们使用模块去组织功能, 而

学习python课程第十八天

一. 常用模块: 1.  sys 模块 1.print(sys.path) #查看环境变量 2.print(sys.modules) #查看已经加载的模块 3.print(sys.argv) #获取终端调用时的参数 4.print(sys.version) #获取解释器的版本信息 5.print(sys.platform) #当前平台的名称 6.sys.exit(0) #正常结束程序,后面的参数必须传整型. 了解: print(sys.api_version) #接口的版本 print(sys.