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

  

转载于:https://www.cnblogs.com/hanjiali/p/11578046.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值