python--文件处理(缓冲区及位置偏移量)

本文介绍了Python中进行文件读写操作的基本方法,包括使用'w+'模式写入数据并读取部分内容,以及利用缓冲区和偏移量进行文件定位。示例代码展示了如何打开文件、写入内容、读取指定字节数、刷新缓冲区以及设置和获取文件偏移量。
摘要由CSDN通过智能技术生成

文件处理练习题:https://blog.csdn.net/zhouzongxin94/article/details/117303943

该文章没有整理,仅限于个人学习记录用
一、正常读写

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Date  : 2021/5/24
# @Name  : ZhouZongXin

"""

"""
import os

PAth = os.path.dirname(__file__)
file = os.path.join(PAth, "test01.txt")
files = "hello world,\n" \
        "我叫小明。"


def w():
    with open(file, "w+", buffering=1) as f:  # buffering=1 行缓冲,遇到换行则缓冲
        data = f.read(5)  # f.read(5)读取5个字节数据
        print(data)  # 输出写入内容
        c = f.write(files)  # 写入操作
        print(c)  # 打印总共写入了几个字节


def r():
    f = open(file, "r+")
    while True:
        rf = f.readline()
        if not rf:  # 如果为假(空格)则退出循环
            break
        print(rf, end="")
    f.close()


w()
r()

二、缓冲区及位置偏移量

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Date  : 2021/5/26
# @Name  : ZhouZongXin

"""

"""
import os

PAth = os.path.dirname(__file__)
file = os.path.join(PAth, "test01.txt")

f = open(file, 'wb+')
f.write(b"hello world")

f.flush()  # 主动刷新缓冲区, f.flush(10)如果写10就是10个字节刷新一次

# 0:表示文件开头
# 1:表示当前位置
# 2:表示文件末尾
# 设置读取的偏移量位置(从末尾往前挪移2位),但是如果移动数为负数时,写入和读取的格式必须是byte格式
f.seek(-2, 2)  

print("当前文件偏移量所在位置", f.tell())  # f.tell()查看当前偏移量的位置

data = f.read()
print(data)

f.close()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

z千鑫

在线乞讨,行行好吧!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值