10-27笔记.文件2

上篇随笔写了如何读取文件,下面引出了2个问题。

Q1:如果只想取其中几行怎么办?

f= open("yesterday2",'r',encoding="utf-8")    表示把yesterday2这个文件打开,并且把它定义为f

print(f.readlines())   这相当于把f中的每一行当做一个元素弄成了一个列表

['Oh, yesterday when I was young\n', '噢 昨日当我年少轻狂\n', 'So many, many songs were waiting to be sung\n', '有那么那么多甜美的曲儿等我歌唱\n', 'So many wild pleasures lay in store for me\n', '有那么多肆意的快乐等我享受\n', 'And so much pain my eyes refused to see\n', '还有那么多痛苦 我的双眼却视而不见\n', "There are so many songs in me that won't be sung\n", '我有太多歌曲永远不会被唱起\n', 'I feel the bitter taste of tears upon my tongue\n', '我尝到了舌尖泪水的苦涩滋味\n', 'The time has come for me to pay for yesterday\n', '终于到了付出代价的时间 为了昨日\n', 'When I was young\n', '当我年少轻狂\n', 'asdfasdqewradsf']

for index,line in enurmerate(f.readlines()) 这里其实index是f.readlines()这个元组里元素的下标,line是里面的每一个元素。

if index == 9:
print('------我是分割线--------')
continue
if index > 2 :
print(line.strip())   其中strip()代表讲里面的空格和回车都给删了。

这代表从第三行开始打,并且打到第十行的时候,会打印------我是分割线--------。

但是这种方法有一个弊端,因为有f.readlines()则代表着吧f中的每一行都给读了,如果这个文件比较大,则运行速度慢,或者内存根本不够。

Q2:如何想写一行删一行?

f= open("yesterday2",'r',encoding="utf-8")   依旧先打开

count =0

for line in f:
     if count == 9:
         print('------我是分割线--------')
         count+=1
         continue
     print(i)
     count+=1

posted @ 2017-10-27 17:28  仔仔爱python  阅读(117)  评论(0编辑  收藏  举报