day 8:open文件和with的使用

本节内容:

  1,open打开文件后的几种操作

  2,with和open的连用

  3,flush的使用

1:open

1)r权限

f = open("D:\autoproject\fullstackweek2day8小重山.txt", "r", encoding="utf-8")
data = f.read()  
# read(5):只读五个字,中英文相同,一个字母一个字,一个汉字一个字,此时光标在第五个字,再次运行,读取的数据是从第五个字往后读取
print(data)

2)w权限

f = open("D:\autoproject\fullstackweek2day8小重山.txt", "w", encoding="utf-8")  # 写的方式打开,会将原来的文件内容清除
f.write("hello world")
f.close()

3)a权限

f = open("小重山", "a", encoding="utf-8")  # 在文件的末尾添加,文件不可读
f.write("
hello yuefei 
")
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(), "
")))
        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)
原文地址:https://www.cnblogs.com/wuzhenhu/p/9524348.html