python-第01章07章节-文件读与写详解
1.文件读的详解
1.1打开两个文件:
scratch 文件上写文件内容,比如:
另一个文件如下代码:
print("-----------------------打开文件进行读取-------------------") data = open("scratch.py",encoding="utf-8").read() print(data)
结果:
-----------------------打开文件进行读取-------------------
我喜欢学习python
Process finished with exit code 0
1.2 想要提取文件中的前几行
1.2.1打印文件的前两行:
首先我们在一个文件中编辑点内容:
然后 再scrach1中输入如下内容:
print("-----------------------打开文件进行读写-------------------") #读文件的前几行 f = open("scratch.py","r",encoding="utf-8")
#用for循环进行取行
for i in range(2): print(f.readline()) #文件关闭 f.close()
结果:
-----------------------打开文件进行读写-------------------
我是个可爱的小女孩
我是我家的宝贝
1.2.2循环文件,第五行不打印(这办法不适用大文件)
print("-----------------------打开文件进行读写-------------------") #读文件的前几行 f = open("scratch.py","r",encoding="utf-8") #循环文件 f.readline()循环列表 #index...enumerate取文件的下标 for index,line in enumerate(f.readline()): #文件默认有空格和换行,split是去掉空格和换行 if index == 5: print("——————————我是分割线——————————————") continue print(line.split()) #文件关闭 f.close()
结果:
-----------------------打开文件进行读写------------------- ['我'] ['是'] ['个'] ['可'] ['爱'] ——————————我是分割线—————————————— ['小'] ['女'] ['孩'] []
1.2.3大文件储存,读取所有,取一行进行保存
f = open("scratch.py","r",encoding="utf-8") count = 0 for line in f: if count == 9: print("------分割线----------") count +=1 continue print(line) #文件关闭 f.close()
结果:
我再想想
Process finished with exit code 0
2.文件的写详解:在scratch1.py进行编写
print("-----------------------打开文件进行编辑-------------------") #读文件时我们将文件名定义一个值,找到这个值就可以进行修改,但是一旦文件名被修改,就无法找到文件进行读取。 #在这里我们就运用到了,文件句柄(f)它将直接定义到文件的原始位置,这样就解决以上问题如下: #f为文件句柄,open打开,“W”写,encoding为格式(以utf-8的格式打开) f = open("scratch.py","w",encoding="utf-8") f.write("我爱北京天安门\n") f.write("我爱中国")
结果:在scratch.py进行显示
注意:1.这种方式有弊病,就是要不只能读,要不只能写。
2.在写的过程中直接用“w”的时候,针对的文件原有的内容就会被自动清除,在工作中需要特别注意。
3.既能读又可写
print("---------------既能读又能写--------------------") #r+为读写 f = open("scratch.py","r+",encoding="utf-8") print(f.readline()) print(f.readline()) #w+为写读 f = open("scratch.py","w+",encoding="utf-8") f.write("----------写入--------------------\n") f.write("----------写入--------------------\n") f.write("----------写入--------------------\n") f.write("----------写入--------------------\n") print(f.tell()) f.seek(4) print(f.tell()) f.write("可能还有很多想说的") f.close()
结果:
---------------既能读又能写-------------------- ----可能还有很多想说的----- ----------写入-------------------- 152 4