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

  • 相关阅读:
    云计算解决方案百度文库
    【QA5】【mysql问题】ERROR 1045 (28000): Access denied for...
    linux系统管理 简单常用命令
    【QA4】【sudoers问题解决】(*** is not in the sudoers file.This incident will be reported)
    自动化测试框架实践1autotest
    Syndication命名空间实现RSS功能学习
    Javascript中撤销方法
    asp.net 中一次性更新所有GRIDVIEW的记录(转)
    Oralce 一次执行多条语句
    asp.net 防注入式攻击
  • 原文地址:https://www.cnblogs.com/zaizaiaipython/p/7744385.html
Copyright © 2011-2022 走看看