全球最实用的IT互联网信息网站!

AI人工智能P2P分享&下载搜索网页发布信息网站地图

当前位置:诺佳网 > 电子/半导体 > 可编程逻辑 >

python文件的读取

时间:2023-06-21 17:23

人气:

作者:admin

标签: 文件 

导读:文件读取的步骤: 打开文本文件对象 写入数据 文件的读取一般使用如下三个方法: read([size]) : 从文件中读取 size 个字符,并作为结果返回 如果没有 size 参数,则读取整个文件. 读取到文...

文件读取的步骤:

  • 打开文本文件对象
  • 写入数据

文件的读取一般使用如下三个方法:

  • read([size]) : 从文件中读取 size 个字符,并作为结果返回如果没有 size 参数,则读取整个文件. 读取到文件末尾,会返回空字符串
  • readline(): 读取一行内容作为结果返回读取到文件末尾,会返回空字符串
  • readlines() : 文本文件中,每一行作为一个字符串存入列表中,返回该列表

代码格式

with open(r"d:\\a.txt", "r"[, encoding="utf-8"]) as f:
    f.read(4)

注意:

  • 在读取文件时, 需要注意读写时字符编码的一致性 , 如果写的时候没有指定编码(默认GBK), 则在读取的时候也不需要指定编码
  • 但如果读的时候未指定编码, 写的时候指定, 则会报错. 例如: 写的时候指定 encoding="utf-8", 则控制台报 UnicodeDecodeError: 'utf-8' codec can't decode byte 0xbc in position 13: invalid start byte

实操代码

# 【操作】 读取一个文件前4个字符
import pickle

with open(r"d:\\a.txt", "r") as f:
    print(f.read(4))

# 【操作】文件较小,一次将文件内容读入到程序中
with open(r"d:\\aa.txt", "r") as f:
    print(f.read())

# 【操作】按行读取一个文件
with open(r"d:\\b.txt") as f:
    while True:
        lines = f.readline()
        if not lines:  # 在python 中 if not 会将后面对象隐式转成True或者False进行判断, 因此遇到空字符串也返回False
            break
        else:
            print(lines, end="")
            print()

# 【操作】使用迭代器(每次返回一行)读取文本文件
# 写和读的编码要对应
with open(r"d:\\bb.txt", "r", encoding="utf-8") as f:
    for a in f:
        print(a, end="")

# 【操作】为文本文件每一行的末尾增加行号
with open(r"d:\\c.txt", "r") as f:
    lines = f.readlines()
    lines2 = [line.rstrip() + " # " + str(index) + "\\n" for index, line in zip(range(1, len(lines) + 1), lines)]
    with open(r"d:\\c.txt", "w") as ff:
        ff.writelines(lines2)

二进制文件的读取和写入

二进制文件的处理流程和文本文件流程一致。首先还是要创建文件对象, 创建好二进制文件对象后,仍然可以使用 write() 、 read() 实现文件的读写操作

在创建文件对象时, 首先需要指定二进制模式,然后才能创建出二进制文件对象. 例如

  • f = open(r"d:\\a.txt", 'wb') 可写的、重写模式的二进制文件对象
  • f = open(r"d:\\a.txt", 'ab') 可写的、追加模式的二进制文件对象
  • f = open(r"d:\\a.txt", 'rb') 可读的二进制文件对象

实操代码

# 二进制文件的读取和写入(此操作相当于复制)
# f = open(r"d:\\a.txt", 'wb') #可写的、重写模式的二进制文件对象
# f = open(r"d:\\a.txt", 'ab') #可写的、追加模式的二进制文件对象
# f = open(r"d:\\a.txt", 'rb') #可读的二进制文件对象
with open(r"d:\\aaa.png", "rb") as scrFile, open(r"d:\\bbb.png", "wb") as destFile:
    for l in scrFile:
        destFile.write(l)

2.4. 文件对象的常用属性和方法

文件对象的属性图片文件对象的打开模式

图片文件对象的常用方法

图片

文件任意位置操作

利用 seek() 可以将读取文件的指针移动到指定字节位置上一个中文字符站两个字节, 而英文只占一个字节

实操代码

print("=================文件任意位置操作======================")
# 【示例】 seek() 移动文件指针示例
with open(r"d:\\cc.txt", "r") as f:
    print("文件名是{0}".format(f.name))  # 文件名是d:\\cc.txt
    print(f.tell())  # 0
    print("读取文件的内容", str(f.readline()))  # 读取文件的内容 齐格飞齐格飞齐格飞
    print(f.tell())  # 18
    f.seek(4, 0)  # 中文占2个字节, 因此在seek时需要是2的倍数
    print("文件读取的内容", str(f.readline()))  # 文件读取的内容 飞齐格飞齐格飞
    print(f.tell())  # 18
温馨提示:以上内容整理于网络,仅供参考,如果对您有帮助,留下您的阅读感言吧!
相关阅读
本类排行
相关标签
本类推荐

CPU | 内存 | 硬盘 | 显卡 | 显示器 | 主板 | 电源 | 键鼠 | 网站地图

Copyright © 2025-2035 诺佳网 版权所有 备案号:赣ICP备2025066733号
本站资料均来源互联网收集整理,作品版权归作者所有,如果侵犯了您的版权,请跟我们联系。

关注微信