2022年 11月 6日

Python基础22:循环读取文件

# 循环读取文件
# 两种方式:
#     ①:while 循环读取,控制每次读取的量
#     ②:以行为单位,当一行过长影响性能
# 一般用第一种读取,因为某行很长,会影响程序性能


# 方式1:
with open(r"E:\PycharmProjects\demo01\Egon202003\b模式示例测试图.jpg", mode='rb') as f: #图片默认\n换行
    while True:
        res = f.read(1024) # 每次读取1024个字节
        print(len(res))
        if(len(res)==0):
            print("读取完了".center(20, "="))
            break
# 结果如下:
        # 1024
        # 1024
        # 1024
        # 1024
        # 829
        # 0
        # == == == == 读取完了 == == == ==


        # if not res:  # 习惯用第一种
        #     print("读取完了".center(20,"="))
        #     break
# 结果如下:
        # 1024
        # 1024
        # 1024
        # 1024
        # 829
        # 0
        # == == == == 读取完了 == == == ==


# 方式2:
with open(r'E:\PycharmProjects\demo01\Egon202003\01python基础-22循环读取文件的文件', mode='rt', encoding='utf8') as f:
    # for line in f.read():  # 一个字符一个字符的读取
    #     print(line)
    #     # 1
    #     # 1
    #     # 1
    #     # 1
    #     # 1
    #     # 1
    #     # 1

    for line in f:  # 文本文件默认\n换行
        print(line, end='')
    # 1111111
    # 2222222
    # 3333333
    # 是是是是
    # 陈陈陈ch

with open(r"E:\PycharmProjects\demo01\Egon202003\b模式示例测试图.jpg", mode='rb') as f: #图片默认\n换行
    for line in f:
        print(line)
# b'x8a\x08\x9dP\xbf\x7f\x91\xf9m\xf8\\\xac\xcb\xc5S\xa6\x92\xf5,\xf3\x1a\xc6*\xe3\x7f\xee\x1e\xd1\xaed\x8a\n'
# b'\xaf^\xc7\xbf\xd2\n'
# b'N*\xee\x99(k\x1cV3\x01\x14\x88\x8dC\x05\x03}@\x8c\x90\x9b\x8e\xcai(\x1d\xf2\xa0\x07\x99\x8e\rwJ\xec0\x05z\n'
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64