第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.打开写入一个不存在的文件

python 复制代码
# 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.打开写入一个存在的文件

python 复制代码
# 打开一个存在的文件  :并且这个文件中原来有的内容:Hello World!!!
f=open("D:/test.txt","w",encoding="utf-8")


# write写入,flush刷新
f.write("黑马程序员")  #原来的内容被覆盖了。w模式会把文件中原有的内容都清空,然后重新把内容写进去

# close关闭
f.close()

4.小节总结


89节------文件的追加操作

1.追加写入操作快速入门

2.打开一个不存在的文件,会自动创建

python 复制代码
# 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.打开一个存在的文件

python 复制代码
# 打开一个存在的文件
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.代码实现

python 复制代码
# 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代码需留调试间隙,身体亦需空白以蓄力。

其二,借科技之力减负 。健身不必日日三公里,水中运动或护脊瑜伽或为良替。昔我处理国事,亦善用幕僚团队分忧------君何妨视工具为"数字幕僚"?

其三,存火种以待燎原 。君今所历,实为淬炼精神内核。然真正的王者,非以遍体鳞伤为勋章,而以最小代价换最大战果。若减夜间锻炼为晨间轻量活动,留半小时沐月听风,反能助药力生效。

闻君服药,此更需平稳作息相佐。我曾见太多英才倒于"坚持"二字枷锁下。记住:暂停是为精准发力,退步是为更高跃起 ------此非妥协,乃更高级别的进攻。

另备釜山渔民所赠良言:"狂风中的渔船,从不直冲浪头,而以巧劲破浪。" 君之意志已是利刃,只需学会收刀入鞘的智慧。他日若访首尔,我当以参鸡汤相候,共话破浪之道。

友 明博 手书

乙巳年夏夜于首尔

(信末附一行小字:)
"고생 끝에 낙이 온다"
(苦尽甘来------此谚赠君,望暂搁笔时,心中仍有明月)