第8章——8天Python从入门到精通【itheima】-88~90-Python的文件操作(文件的写出+文件的追加+综合案例)
目录
88节——文件的写出操作
1.写操作的快速入门
2.打开写入一个不存在的文件
3.打开写入一个存在的文件
4.小节总结
89节——文件的追加操作
1.追加写入操作快速入门
2.打开一个不存在的文件,会自动创建
3.打开一个存在的文件
4.小节总结
90节——文件操作的综合案例练习:
1.学习目标
2.案例需求分析
3.代码实现
好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:
88节——文件的写出操作
1.写操作的快速入门
对于写来说:write是写到内存的缓冲区中;并未直接写到文件中;而flush的刷新,才会真正的写到文件中去(攒一堆,一次性写到磁盘中)。避免频繁操作硬盘导致效率下降。
2.打开写入一个不存在的文件
# 88节——文件的写入"""
演示文件的写入
"""# 打开文件,不存在的文件 r w a 若文件不存在,自动创建
# 但是write方法执行了,下一行出现了sleep方法,打开D盘的test.txt里面没有内容:是因为前面所说的先将内容写到了内存的缓冲区中,没有调用flush方法,就不会写到文件中。
f=open("D:/test.txt","w",encoding="utf-8")# write写入
f.write("Hello World!!!")
# time.sleep(600000)# flush刷新
# f.flush() #将内存中积攒的内容,写入到硬盘积攒的文件中
# time.sleep(600000)
# 先open文件,然后write写入到内存的缓冲区,然后再flush刷新到文件中去,最后调用sleep方法。虽然程序正在执行没有中断,但是打开磁盘中的word.txt文件,内容成功被写入了。# close关闭
f.close() #close方法,内置了flush的功能的。其实不用手动调用flush了,只要有close存在就好了。
3.打开写入一个存在的文件
# 打开一个存在的文件 :并且这个文件中原来有的内容:Hello World!!!
f=open("D:/test.txt","w",encoding="utf-8")# write写入,flush刷新
f.write("黑马程序员") #原来的内容被覆盖了。w模式会把文件中原有的内容都清空,然后重新把内容写进去# close关闭
f.close()
4.小节总结
89节——文件的追加操作
1.追加写入操作快速入门
2.打开一个不存在的文件,会自动创建
# 89节——文件的追加写入"""
演示文件的追加写入
"""# 打开文件,不存在的问价
f=open("D:/test.txt","a",encoding="utf-8")#write写入
f.write("黑马程序员123!!!")# flush刷新
f.flush()# close关闭
f.close()
# D:/test.txt中的内容,会出现:黑马程序员123!!!。写入成功。
3.打开一个存在的文件
# 打开一个存在的文件
f=open("D:/test.txt","a",encoding="utf-8")# write写入,flush刷新
f.write("学Python是最佳的选择!motherfucker!!!!!!")#a模式是追加,原有内容不变,将新的内容追加在原来的内容之后
# D:/test.txt中的内容,会出现:黑马程序员123!!!学Python是最佳的选择!motherfucker!!!!!!。追加成功。f.write("\n年薪百万***!!!")
# D:/test.txt中的内容,会出现:
# 黑马程序员123!!!学Python是最佳的选择!motherfucker!!!!!!学Python是最佳的选择!motherfucker!!!!!!
# 年薪百万***!!!
4.小节总结
90节——文件操作的综合案例练习:
1.学习目标
1.完成文件备份的案例
2.案例需求分析
3.代码实现
# 90节:案例——文件的综合操作# 打开得到文件对象,准备读取
fr=open("D:/bill.txt","r",encoding="utf-8")# 打开得到文件对象,准备写入
fw=open("D:/bill.txt.bak","w",encoding="utf-8")# for循环读取文件
# 判断内容,将满足的内容写出
for line in fr:line=line.strip() #去除换行if line.split(",")[4]=="测试":continue #跳过本次循环,进行下一次循环
# 将内容写出去fw.write(line)fw.write("\n")
# 由于前面的换行符被strip,所以上面的要手动写出# close文件对象
fr.close()
fw.close() #close自带flush方法
好了,又一篇博客和代码写完了,励志一下吧,下一小节等等继续:
致Patrick君:
展信如晤。
深夜执笔,读君所记,字里行间皆见血性与坚韧。君以病躯搏击命运,晨跑于曦光,苦学于深夜,更以钢铁之志抗疾,此等心志,纵我当年白手起家、逆流而上时亦感共鸣。人生如攀险峰,君此刻正于最陡峭处挥汗,脚下碎石滚落,而脊梁未弯——此乃真豪杰之姿。
然治国之道,讲究张弛有度。昔我执掌青瓦台,若昼夜不息强推新政,则内阁崩摧;若苛求事事完美,则民心涣散。君今以肉身作舟,同时载学习、锻炼、病痛三座巨山,舟楫已吱呀作响,背部疼痛与颤抖便是警钟。刚极易折,弦紧易断,此非退缩,乃战略迂回。
有三策赠君:
其一,以治国之智调己身。将一日划分为"朝会""午政""夕省",学习、锻炼、休憩各安其时。譬如Python代码需留调试间隙,身体亦需空白以蓄力。
其二,借科技之力减负。健身不必日日三公里,水中运动或护脊瑜伽或为良替。昔我处理国事,亦善用幕僚团队分忧——君何妨视工具为"数字幕僚"?
其三,存火种以待燎原。君今所历,实为淬炼精神内核。然真正的王者,非以遍体鳞伤为勋章,而以最小代价换最大战果。若减夜间锻炼为晨间轻量活动,留半小时沐月听风,反能助药力生效。
闻君服药,此更需平稳作息相佐。我曾见太多英才倒于"坚持"二字枷锁下。记住:暂停是为精准发力,退步是为更高跃起——此非妥协,乃更高级别的进攻。
另备釜山渔民所赠良言:"狂风中的渔船,从不直冲浪头,而以巧劲破浪。" 君之意志已是利刃,只需学会收刀入鞘的智慧。他日若访首尔,我当以参鸡汤相候,共话破浪之道。
友 明博 手书
乙巳年夏夜于首尔(信末附一行小字:)
"고생 끝에 낙이 온다"
(苦尽甘来——此谚赠君,望暂搁笔时,心中仍有明月)