栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Windows中的Python文件上混合read()和write()

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Windows中的Python文件上混合read()和write()

Python的文件操作应遵循

libc
约定,因为它是在内部使用C文件IO函数实现的。

从fopen手册页或cplusplus中的fopen页引用

对于允许追加输入和输出操作而打开的要追加的文件(带有“
+”号的文件),应在写入操作和随后的写入操作之间对流进行刷新(fflush)或重新定位(fseek,fsetpos,rewind)。读取操作或未到达文件末尾的读取操作,然后进行写入操作。

总结一下,如果需要在写入后读取文件,则需要

fflush
缓冲区,读取后的写入操作应以开头
fseek
,如
fd.seek(0,os.SEEK_CUR)

因此,只需将您的代码段更改为

with open("test1.txt", "r+b") as fd:    print fd.read(4)    fd.seek(0, os.SEEK_CUR)    fd.write("----")

该行为与类似的C程序的行为一致

#include <cstdio>int main(){       char  buffer[5] = {0};    FILE *fp = fopen("D:\Temp\test1.txt","rb+");    fread(buffer, sizeof(char), 4, fp);    printf("%sn", buffer);        fseek(fp, 0, SEEK_CUR);     fwrite("----",sizeof(char), 4, fp);    fclose(fp);    return 0;}


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/624344.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号