admin 管理员组

文章数量: 887006

python 入门学习 Day 4

python 入门学习

一周掌握 python 入门知识


学习目标:

1、 文件操作流程
2、文件的创建、只读 和 追加
3、文件的遍历
4、文件的二进制模式
5、文件的混合模式
6、文件的修改


学习内容:

1、 文件操作流程

  • 打开文件 f=open(filename)
  • 写文件 f.write(“内容”)
  • 读文件 f.read()
  • 保存并关闭文件 f.close()
  • 文件打开模式
  • r 只读模式
  • w 创建模式,若文件已存在,则覆盖旧文件
  • a 追加模式,新数据会写到文件末尾
    文件只能以读、创建、追加3种模式中的一种打开文件,不能既写又读

2、文件的创建、只读 和 追加
三种模式:

f=open("name_list", mode="w")f.write("lisa\n")
f.write("jisoo\n")
f.write("jenne\n")
#print(f.read())  会报错,写的时候不能读f.close()
f=open("name_list",mode='r')
print(f.readline()) #读一行
print("-----------")
print(f.read()) #读全部
f.close()

(光标问题,之后解释)
运行结果

f=open("name_list",mode='a')
f.write("rose\n")
# print(f.read()) 会报错,追加时不可读
f.close()

3、文件的遍历
实际上就是循环文件

f=open("学生.txt")
for i in f:i=i.split()grade=i[2]if int(grade) >=85:print(i)

4、文件的二进制模式
可以用二进制模式打开图片、视频文件

  • rb 二进制只读模式
  • wb 二进制创建模式,若文件已存在,则覆盖旧文件
  • ab 二进制追加模式,新数据写到文件尾部
#读二进制文件 rb
# f=open("20200218135412_LGNVH.jpeg","rb")
# for i in f:
#     print(i)#写二进制文件 wb
f=open("wb_file","wb")s="张三"
f.write(s.encode("gbk"))
#f.write("张三") 会报错,只能拿bytes来写

5、文件的混合模式

  • w+ 模式:创建一个新文件,写一段内容,可以再把写的内容读出来
  • r+ 模式(rw):能读能写,但都是写在文件后,类似于追加;但可以移动光标实现任意位置写入
f=open("学生.txt","r+")
print(f.readline())
print(f.tell())
f.seek(f.tell())
f.write("转校生郑业")

  • a+ 模式:追加读,一打开时光标在文件尾部,写数据全是追加的形式

name.txt文件

f=open("name.txt")
f.seek(8) #将光标移动到第6个字节处
print(f.read())

运行结果:

跳到文件任意位置写

f=open("seek_write","w")
f.write("hello\n")
f.write("world\n")
#f.seek(10)
#print("返回光标当前位置:",f.tell())
f.write("-------\n")
f.write("world\n")
print("返回光标当前位置:",f.tell())
f.close()

运行结果;

返回光标当前位置: 26

  • def flush(self,*args,**kwargs)#把文件从内存buffer里强制刷新到硬盘

6、文件修改
像上面的插入新内容会覆盖原来的数据,但正常添加,应该是不影响原数据的

  • 先把所有的数据加载到内存里
  • 在内存中进行修改
  • 修改完再重新写惠硬盘

f=open("学生.txt","r+")#加载到内存
data=f.read()
new_data=data.replace("张三","尤克里里")#清空文件
f.seek(0)
f.truncate() #截断文件#重新写回硬盘
f.write(new_data)
f.close()


缺点:文件太大就很慢了,因为从硬盘读到内存就比较慢


学习产出:

练习1、全局文本检索替换
需求:写一个脚本,允许用户按一下方式执行时,即可以对指定文件内容进行全局替换,且替换完毕后打印替换了多少处内容;写完后的脚本调用方式:python your_script.py old_str new_str filename
2、用户登录认证程序

本文标签: python 入门学习 Day 4