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