尧图网络科技YAOTU DIGITAL 获取报价
获取报价
首页 / 资讯中心 / 文章详情

文件写入模式与指针操作详解

发布时间:2026/9/19 8:12:51

资讯中心
01
ARTICLE

文件写入模式与指针操作详解

文件写入模式与指针操作详解
要是用 r、w、w、a、a 模式去打开文件, 那都是能够进行写入操作的。需要特别说明的是, 在以 r、w、w 模式打开文件的情况下, 文件指针处于文件开头的位置而当以 a、a 模式打开文件时, 文件指针是位于文件结尾之处的。对此情况, 需要加以说明的是, 在以 w 或者 w 这种模式去打开文件之际, 程序会立刻将文件之中的内容予以清空。文件指针的概念用来标明文件读写位置的是文件指针, 要是将文件视作一股水流, 在以 b 模式打开时, 文件里的每个数据是一个字节, 以普通模式打开时, 每个数据是一个字符, 这些数据就好比一个个水滴, 文件指针所标明的就是即将对其进行读写操作的文件位置。图 1 简单示意了文件指针的概念。图 1 文件指针概念示意图文件对象提供了以下方法来操作文件指针seek(): 此方法用以把文件指针移至指定位置, 当为0时此乃默认值, 意味着从文件起始处起算, 譬如将设为3, 便是把文件指针挪至第3处当为1时, 意味着从指针当下位置计起, 比如文件指针当前处于第5处, 把设为3, 就是将文件指针移至第8处当为2时, 意味着从文件末尾计起, 比如将设为3, 表明把文件指针移至文件末尾倒数第3处。tell()判断文件指针的位置。除此之外在程序借助文件对象去进行数据的读写操作之时, 文件指针会自行朝着后方移动, 具体言之, 读写了若干个数据, 文件指针便会自动朝着后方移动相应数量的位置。下面程序示范了文件指针操作f open(.py, rb), 判断文件指针的位置, print(f.tell()), 0, 将文件指针移动到3处, f.seek(3), print(f.tell()), 3, 读取一个字节, 文件指针自动后移1个数据, print(f.read(1)), o, print(f.tell()), 4, 将文件指针移动到5处, f.seek(5), print(f.tell()), 5, 将文件指针向后移动5个数据, f.seek(5, 1), print(f.tell()), 10将文件指针移动到倒数第10处, f.seek(-10, 2), print(f.tell()), print(f.read(1)), d。运用 seek() 方法去移动 文件指针, 这一运算涉及从 文件开头、指针 当前位置、文件 结尾处起始计算, 上面程序对此予以示范 , 它具备这样一系列操作。执行上面所提及到的那个程序 并结合程序 输出结果 , 即可进行体会 文件指针移动所产生的具体效 果。针对文件指针所处位置, 程序会读取该位置对应的数据就程序读取数据数量而言, 文件指针会依照此数量自动往后移动相应位置。输出内容文件对象提供的写文件的方法主要有两个输出字符串, 或者输出字节串, 这是write(str 或 bytes)的功能。只有以二进制模式, 也就是b模式打开的文件, 才能够写入字节串。(可迭代对象)输出多个字符串或多个字节串。下面程序示范了使用 write() 和 () 输出字符串文件对象f被赋值为使用w模式打开x.txt文件, 操作系统相关的换行符表示为os., f这个文件对象执行了写入操作, 写入的内容是我爱加上os., f这个文件对象还执行了另一个操作, 在括号内依次写入了三个连接了os.的字符串, 分别是土门壁甚坚, 加上os.:杏园度亦难。通过os.连接了势异邺城下, 加上os., 最后连接到纵死时犹宽。加上os.。在上面所提及的程序里, 第4行的代码, 它调用write()这个方法, 以此来输出单个的字符串而第5行的代码呢, 它是去调用()这个方法, 进而输出多个字符串的。在运用上面所提及的方法去输出文件之际, 程序会采用当前操作系统默认的字符集。要是有使用指定字符集来输出文件的需求, 那么能够采用二进制形式, 程序会先把所输出的字符串转化成指定字符集对应的二进制数据, 也就是字节串, 之后再输出二进制数据。下面的程序做了这样的一个示范, 示范的内容是使用二进制数据来进行输出, 通过这样的一种方式, 进而实现以 UTF - 8 字符集来保存文件, 这就是整个演示内容了。上面程序里的代码, 是以 wb 模式去打开文件的, 这所表达的意思是, 程序会用二进制形式来输出文件, 在这种情况下, 程序输出的必然得是字节串, 而绝不能是字符串。所以, 程序要调用 () 方法, 把字符串转变成字节串, 在转换的时候设定需使用 UTF-8 字符集, 这就意味着程序将会依照 UTF-8 字符集来保存文件。此程序所输出的文件内容, 和上一个程序输出的文件内容是一样的, 只不过, 此程序输出的文件内容, 是按照UTF - 8字符集来进行保存的。从上面所呈现的程序能够看到, 当运用 w、wb 模式去打开文件之时, 会致使文件内容被清空, 所以, 不管程序运行多少回次, 其输出的文件内容都仅仅留存最近一次的输出数据, 要是程序期望在文件后面添加内容, 那么就应当采用 a 或 ab 模式, 比如像如下这样的程序:你提供的内容存在错误信息, 以下是纠正错误后按照要求改写的: 打开名为‘z.txt’的文件, 以追加和读取模式, 这是当前操作系统上的换行符, 写入‘我爱’, 接着, 将‘土门壁甚坚, ’与当前操作系统上的换行符组合写入, 再将‘杏园度亦难。’与当前操作系统上的换行符组合写入, 然后将‘势异邺城下, ’与当前操作系统上的换行符组合写入, 最后将‘纵死时犹宽。’与当前操作系统上的换行符组合写入。那个位于上面位置的程序, 是以 a 这种模式去打开指定的文件, 这所代表的意义就是, 是以追加模式来实施打开文件这个行为, 所以呢, 在运用 open() 函数将文件打开之后, 并不会马上就把文件里面的内容给清空掉, 而且还会把文件指针移动到文件的结尾之处, 该程序会在文件结尾的那个地方追加内容。程序每次运行上面的那个, 都会朝着 z.txt 文件里进行追加一段内容的操作, 程序运行的次数一旦增多, z.txt 文件的内容相应地就会变得越来越多。
02
RELATED NEWS

相关资讯

更多网站建设与数字化升级内容

03
WHY YAOTU

想打造同款高转化官网?

懂行业、懂生意,从建站到增长一站式陪跑

场景化定制

不做模板站,围绕你的业务场景量身设计,小众不撞款。

营销型架构

以转化目标组织内容与路径,让官网真正带来询盘。

全周期服务

设计、开发、运营、运维一体,上线只是开始。

免费获取你的建站方案

留下需求,专属顾问 24 小时内为你输出方案建议。