zoukankan      html  css  js  c++  java
  • 10-27笔记.文件2

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

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

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

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

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

  • 相关阅读:
    大二第二学期周学习进度总结(七)
    java课程之团队开发冲刺阶段1.1
    Java课程之团队开发(NABCD需求分析)
    大二第二学期周学习进度总结(六)
    Java课程之团队开发(团队介绍)
    大二第二学期周学习进度总结(五)
    模拟退火 费马点求解
    三分 传送带
    2357数
    B监狱 noip 模拟 7.29(区间DP)
  • 原文地址:https://www.cnblogs.com/zaizaiaipython/p/7744385.html
Copyright © 2011-2022 走看看