【文件操作】
#文件操作 文件操作模式 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\n"]) f_write.write(line) #作业涉及 a = str({"beijing":{"1":111}}) #转换为字符串类型 print(a) a =eval(a) #转换回原来的类型
人生短短数十载,经不起几次重头再来