day 8:open文件和with的使用
本节内容:
1,open打开文件后的几种操作
2,with和open的连用
3,flush的使用
1:open
1)r权限
f = open("D:\\auto\project\\fullstack\week2\day8\小重山.txt", "r", encoding="utf-8") data = f.read() # read(5):只读五个字,中英文相同,一个字母一个字,一个汉字一个字,此时光标在第五个字,再次运行,读取的数据是从第五个字往后读取 print(data)
2)w权限
f = open("D:\\auto\project\\fullstack\week2\day8\小重山.txt", "w", encoding="utf-8") # 写的方式打开,会将原来的文件内容清除 f.write("hello world") f.close()
3)a权限
f = open("小重山", "a", encoding="utf-8") # 在文件的末尾添加,文件不可读 f.write("\nhello yuefei \n") f.close() # 关闭打开的文本
4)r+,a+,w+的区别
# ----- r+的用法 ---- f = open("小重山", "r+", encoding="utf-8") print(f.readline()) # 必须有read的动作才能够添加 ,不然不能添加成功 f.write("你好") # 写在最后 f.seek(0) for i in f: print(i.strip()) # 去除前后空格 f.close()
# -------------- w+的用法-------------- f = open("小重山1", "w+", encoding="utf-8") f.write("你好") print(f.tell()) # 获取当前光标所在位置,字节位置 f.seek(0) # 光标移动到开始 for i in f: print(i.strip()) f.close()
a+和w+的用法相同,只是在打开文件的时候不清空
2,with和open的连用
with open("小重山", "r", encoding="utf-8") as f, open("新小重山", "w+", encoding="utf-8") as f2: # with的使用可以在结束的时候自动关闭文件,不需要在运行的最后加上close number = 1 for i in f: if number == 6: i = ''.join((i.strip(), "alex")) f2.write(''.join((i.strip(), "\r"))) number += 1 f2.seek(0) for new in f2: # 使用的时候迭代器的方式,不容易导致内存被过多的占用 print(new.strip())
3,flush的使用,实现进度条的功能
import sys, time for i in range(100): sys.stdout.write("*") sys.stdout.flush() # 将写的文本存入硬盘当中 time.sleep(0.2)