zoukankan      html  css  js  c++  java
  • 20201214-4 文件读与写详解2

    5-1 如果只想打印前五行,怎么办?
    f = open("yesterday",'r',encoding="utf-8")  # 文件句柄
    print(f.readline())
    print(f.readline())
    print(f.readline())
    print(f.readline())
    print(f.readline())
    如果 想读 500 行, copy 500 次?
     
    写代码的原则,避免重复代码,重复 5 次,被开的节奏
     
    5-2 如果只想打印前五行,怎么办?
    f = open("yesterday",'r',encoding="utf-8")  # 文件句柄
    for i in range(5):
        print(f.readline())
     
    5-3 现在想把 文件进行 循环;每循环一次,打印一次,到第 10 行的时候,不打印
    f = open("yesterday",'r',encoding="utf-8")  # 文件句柄
    print(f.readline())
    ---> 结果是一个列表,每行是一个元素
     
    5-3-1 所以 -->
    f = open("yesterday",'r',encoding="utf-8")  # 文件句柄
    for line in f.readlines():
        print(line)
    # 有空行,是因为每个后面,默认有 
     
    5-3-2 如果不想有空行,可以用 strip() 去掉
    f = open("yesterday",'r',encoding="utf-8")  # 文件句柄
    for line in f.readlines():
        print(line.strip())
    # 第 10 行 不打印 怎么写?
    # low loop
    f = open("yesterday",'r',encoding="utf-8")  # 文件句柄
    for index,line in enumerate(f.readlines()):
        if index == 9:
            print('----- 我是分割线 -----')
            continue
        print(line.strip())
    5-4 f.readline 只适合读小文件,大文件不合适,会占用内存
    如果读大文件怎么办?
    循环一行,删掉一行,内存中只保存一行
    # high bige
    for line in f:
        print(line)
    # 这个效率是最高的,因为 f 已经被变成了 迭代器
    # 现在他不是列表了,所以,需要弄一个计数器。
    count = 0
    for line in f:
        if count == 9:
            print('----我是分割线----')
            count += 1
            continue
        print(line)
        count += 1
        
     

  • 相关阅读:
    单网卡ADSL共享上网的设置
    单网卡ADSL共享上网的设置
    求阶乘的函数
    用递归算法求两个数的最大公约数
    编程求组合
    汉诺塔游戏
    求两个数的最小公倍数
    快排的非递归算法
    字符串匹配之通配符问题一串首尾相连的珠子(m个),有N种颜色(N《=10),设计一个算法,取出其中一段,要求包含所有N中颜色,并使长度最短。
    sizeof和strlen
  • 原文地址:https://www.cnblogs.com/azxsdcv/p/14133299.html
Copyright © 2011-2022 走看看