【文件操作】

#文件操作
    文件操作模式
    r:只读
        f = open("小重山","r",encoding="utf-8")
        f.read() #按字符读
        
        f.readline() #按行读取,光标发生位置变化,读取的最后位置
        f.readline()
        
        f.readlines() #读取全部文件,光标发生位置变化,读取的最后位置
    w:只写
        f = open("小重山","w",encoding="utf-8")
        f.write()  #先清空文件再写
    a:追加
        f = open("小重山","a",encoding="utf-8")
        f.append("hah ") #默认写到最后,光标在最后,不清空内容
     

    f.close()  #open 和 close成对出现,打开再关闭,不关闭数据存在缓存里
    
    truncate(): #截断数据
        r模式:无法截断,只读模式
        w模式: 先清空,清空后没内容,截断无效
        a模式:截断指定位置后的内容
    
    r+: 读写模式
        先读,读取完成后再写,光标默认在0位置,最后位置开始写
    w+: 写读模式
        先清空文件再写,写完可读取
    a+: 追加读取模式
        先追加内容,然后可以读取,光标默认在最后位置
    
    with:   #同时管理多个文件对象
    
        with open("file1","r") as f_read,open("file2","w") as f_write:
        
【例子】
#迭代器
number = 0
for i in f: #将f做成一个迭代器,用一行取一行取完为止
    number += 1
    if number == 6:
        i = "".join([i.strip(),"xinjiadeneirong"]) #取代加号
        print(i.strip())
    print(i.strip())

#优化版
number = 0
for i in f :
    if number == 6:
        i = "".join([i.strip(),'xinjiadeneirong'])
    print(i.strip())
    
    
#进度条
import sys,time

for i in range(30):
    sys.stdout.write("*") 
    sys.stdout.flush() #实时存储到硬盘
    time.sleep(0.1)  #等待0.1秒返回执行结果

#如何在磁盘修改文件

    #常规思路,存储机制限制
    number = 0 
    for line in f:
        number +=1
        if number == 3:
            f.while('alex') #只是先写到缓存里,不能实现在硬盘读写
            
    #再新建一个文件,一个读,一个写
    with open("小重山","r",encoding="utf-8") as f_read,open("小重山2","w",encoding="utf-8")
    
    number = 0 
    for line in f_read:
        number += 1
        if number == 5:
            line="".join([line.strip(),"alex
"])
        f_write.write(line)
    

#作业涉及
 
a = str({"beijing":{"1":111}}) #转换为字符串类型
print(a)
a =eval(a) #转换回原来的类型 
人生短短数十载,经不起几次重头再来
原文地址:https://www.cnblogs.com/bk770466199/p/5811369.html