文件操作part3 文件内指针的移动

大前提:文件内指针移动是以Bytes为单位的,唯独在唯独在t模式下的read读取内容的个数是以字符为单位的

t模式下读取文件:

with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
    data=f.read(3)#读取的是三个字符
    print(data)

with open(‘a.txt‘,mode=‘rb‘) as f:
    data=f.read(3)#读取的是三个Bytes
    print(data.decode(‘utf-8‘))
 f.seek(指针移动的字节数,模式控制): 控制文件指针的移动

  参数二:

      0: 默认的模式,该模式代表指针移动的字节数是以文件开头为参照的

      1: 该模式代表指针移动的字节数是以当前所在的位置为参照的

      2: 该模式代表指针移动的字节数是以文件末尾的位置为参照的 强调:其中0模式可以在t或者b模式下使用,而1跟2模式只能在b模式下使用

f.tell() 返回现在指针距离当前文件开头的位置

0模式的详解:t模式下:
with open(‘a.txt‘,mode=‘rt‘,encoding=‘utf-8‘) as f:
    f.seek(4,0)#从开头移动了四个字节
    print(f.tell())
    print(f.read())

b模式下:

with open(‘a.txt‘,mode=‘rb‘) as f:
    # f.seek(4,0)
    f.seek(2,0)
    print(f.tell())
    print(f.read().decode(‘utf-8‘))#字节读取不完整,不能使用utf-8解码报错

1模式的详解(只能在b模式下)

with open(‘a.txt‘,mode=‘rb‘) as f:
    f.seek(3,1)#从当前位置移动三个字节(当前位置是文件开头)
    print(f.tell())
    f.seek(4,1)#(从上次指针位置移动4个字节)
    print(f.tell())
    print(f.read().decode(‘utf-8‘))
2模式详解
with open(‘a.txt‘,mode=‘rb‘) as f:
    f.seek(-9,2)#从文件末尾,向前移动9个字节
    data=f.read()
    print(data.decode(‘utf-8‘))

实现文件新写入文件监控;

run.py 添加文件内容

import time
with open(r‘b.txt‘,mode=‘a‘,encoding=‘utf-8‘) as f:
    f.write(‘%s 下雨了\n‘%time.strftime(‘%Y-%m-%d %X‘))

检测.py  检测

with open(r‘b.txt‘,mode=‘rb‘) as f:
    f.seek(0,2)#指针移动到最后
    while True:#读取指针后一行的内容
        line = f.readline()
        if len(line)==0:
            continue
        else:
            print(line.decode(‘utf-8‘),end=‘‘)
 

原文地址:https://www.cnblogs.com/msj513/p/9686131.html

时间: 2024-10-31 15:44:24

文件操作part3 文件内指针的移动的相关文章

Python文件操作:文件的打开关闭读取写入

Python文件操作:文件的打开关闭读取写入 一.文件的打开关闭 Python能以文本和二进制两种方式处理文件,本文主要讨论在Python3中文本文件的操作. 文件操作都分为以下几个步骤: 1.打开文件. 2.操作文件:读/写. 3.关闭文件. 操作系统中的文件默认处于存储状态,读写文件时需要请求操作系统打开一个要在当前程序操作的对象,打开不存在的文件可以创建文件.open()方法通过接收"文件路径"以及“文件打开模式”等参数来打开一个文件,并且返回文件对象.打开后的文件只能在当前程序

jqm文件上传,上传图片,jqm的表单操作,jqm的ajax的使用,jqm文件操作大全,文件操作demo

最近在论坛中看到,在使用html5中上传图片或文件,出现各种问题.这一方面,我也一直没有做过,今天就抽出了一点时间来学习一下.现在的示例已经ok了,我就给大家分享一下,希望对大家有帮助. 好吧,我们先看看效果截图吧: 还行吧,来看页面代码: <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <h

(转)文件操作-文件操作柄,NSFileHandle

利用  文件操作柄,也就是  NSFileHandle这类物件,我们  可以更加近距离地  操作  文件.一般来说,操作  文件  需要  下面三个步骤: 打开  文件,为  这个文件  创建  文件操作柄: 进行  输入/输出操作: 关闭  文件. 下面的表格  总结了  可以对文件操作柄所采取的措施: 措施名称 描述 +(NSFileHandle *)fileHandleForReadingAtPath:path 打开文件以便读取 +(NSFileHandle *)fileHandleFor

Linux下的文件操作——基于文件指针的文件操作(缓冲)

目录操作 创建和删除目录: 原型为: #include <sys/stat.h> #include <sys/types.h> #include <unistd.h> int mkdir(const char *pathname, mode_t mode); //创建目录,mode是目录权限 int rmdir(const char *pathname); //删除目录 获取目录信息: 原型为: #include <sys/types.h> #include

C语言中的文件操作---重定向操作文件

先说个题外话,文件操作以及字符串与字符深入处理(就是那些什么puts(), getchar()什么的)是本人深入认识C++最后的两座大山.而今天先把重定向文件操作解决掉. 输入输出重定向恐怕是文件I/O操作中最简单的方法了,具体用法是现在main函数的开头加入两条语句,例如: freopen("D:\\input.txt", "r", stdin); freopen("D:\\output.txt", "w", stdout)

php课程---文件操作及文件上传的代码总结

php里面文件包含目录和文件两种 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equ

文件操作--大文件的加密和搬运

C文件操作综合项目: 读取一个文件的数据到另一个文件,在读取的过程中加密. #include "stdlib.h" #include "stdio.h" #include "string.h" int fileEnc(char* fileDestinationPath, char* fileSourcePath) { FILE *fileDestination = NULL; FILE *fileSource = NULL; int ret =

Python之文件操作:文件的读写

一.open函数:对文件读写之前,需要先打开文件,获取文件句柄 注意:open() file() 尽量使用open(),Python3以后不支持file()了 1.open(file_name[,access_mode][,buffering]) (1)参数说明 file_name:一个包含了你要访问的文件路径及文件名称的字符串值.尽量使用绝对路径 access_mode:打开文件的方式:这个参数是非强制的,默认文件访问模式为只读(r) r,只读 w:写之前会清空文件的内容 a:追加的方式,在原

Python 基础之文件操作与文件的相关函数

一:文件操作 fp =open("文件名",mode="采用的模式",encoding="使用什么编码集")fp 这个变量接受到open的返回值  是一个文件io对象 (又称文件句柄)i => input 输入o => output输出有了对象之后,就可以使用对象.属性 或者 对象.方法进行操作fp.write("字符串")fp.close() #关闭文件fp.read() #读取内容 #1.文件的写入和读取 #(