python os write_Python 3:写入方法与os.write返回的字节数
我想创建一个包含许多“页面”的文本文件,并将每个页面的字节偏移记录在一个单独的文件中.为此,我将字符串打印到主输出文件并使用bytes_written = file.write(str)计算字节数.但是,字节偏移通常是错误的.
我切换到bytes_written = os.write(fd,bytes(str,’UTF-8′)),现在可以正常工作了. write()和os.write()有什么区别?或者归因于我将字符串手动转换为UTF-8而导致返回值的差异?
解决方法:
What is the difference between write() and os.write()?
后者是操作系统级别system call的薄包装器,而前者是标准C库的一部分,后者执行一些额外的缓冲,最终在实际需要将其缓冲数据写入file descriptor时调用后者.
Python 3.x为文件对象的write()方法添加了一些额外的逻辑,该方法为Python str对象进行自动字符编码转换,而Python 2.x则没有.
Or is the difference in the return value simply due to my manual conversion of the string to UTF-8?
在Python 3.x中,差异与打开文件的方式更相关.
如果您以二进制模式打开文件,例如f = open(filename,’wb’)然后f.write()需要一个bytes对象,并返回写入的字节数.
相反,如果您以文本模式打开文件,例如f = open(filename,’w’)然后f.write()需要一个str对象,并返回写入的字符数,对于多字节编码(如UTF-8)可能与写入的字节数不匹配.
请注意,无论在调用os.open()时是否使用了O_BINARY标志,os.write()方法总是需要一个bytes对象.
标签:python,file,python-3-x,utf-8
来源: https://codeday.me/bug/20190608/1199865.html
python os write_Python 3:写入方法与os.write返回的字节数相关推荐
- Python 文件打开读取写入方法
目录 前言 open()方法 with open()方法 实用案例 前言 读写文件是最常见的IO操作.Python内置了读写文件的函数,用法和C是兼容的. 读写文件前,我们先必须了解一下,在磁盘上读写 ...
- python serial.write_Python serial.write方法代码示例
本文整理汇总了Python中serial.write方法的典型用法代码示例.如果您正苦于以下问题:Python serial.write方法的具体用法?Python serial.write怎么用?P ...
- python 重命名的方法_Python下OS模块重命名方法renames
在python中有很多强大的模块,其中我们经常要使用的就是OS模块,OS模块提供了超过200个方法来供我们使用,并且这些方法都是和数据处理相关的,这里介绍下重命名这个方法. OS的重命名方法是os.r ...
- MAC OS获取root权限方法
MAC OS获取root权限方法 MAC OS原来可以通过很多方法获取root权限,本空间上一篇文章即是一种方法,在继续查阅中又发现: 管理员用户用命令 sudo -i sudo -s sudo su ...
- python获取文件字节数_python关于文件操作中的字符个数和字节数
记得刚开始学习python文件操作写文件的时候有个问题,很奇怪.最后知道了就是字节数的原因. 我们先来看个例子. 新建个文件存为utf-8命名为0117utf-8.txt记得去掉BOM头. 我们用r+ ...
- python os write_Python os.write() 方法
Python os.write() 方法 概述 os.write() 方法用于写入字符串到文件描述符 fd 中. 返回实际写入的字符串长度. 在Unix中有效. 语法 write()方法语法格式如下: ...
- python的open方法_Python os.open() 方法
Python os.open() 方法 概述 os.open() 方法用于打开一个文件,并且设置需要的打开选项,模式参数mode参数是可选的,默认为 0777. 语法 open()方法语法格式如下: ...
- Python | 重命名现有文件(os.rename()方法的示例)
重命名现有文件 (Renaming an existing file) To change the name of an existing file – we use "rename()&q ...
- python中tmp是什么函数_Python os.tmpfile()方法
Python os.tmpfile()方法 概述 os.tmpfile() 方法用于返回一个打开的模式为(w+b)的临时文件对象,这文件对象没有文件夹入口,没有文件描述符,将会自动删除. 语法 tmp ...
最新文章
- service层加需要加锁吗_Redis分布式锁,你真的用对了吗?
- python面试-Python面试题总结
- PHP中empty,is_null,isset中的异同和功能
- 算法导论 练习10.4-5二叉树的遍历
- 学会这些 Python 美图技巧,就等着女朋友夸你吧!| 原力计划
- js顺序加载与并行加载
- mysql客户端导出数据_mysql客户端导出数据表的方法
- ISO常见的17大体系介绍
- 姿态传感器的原理与应用文献笔记
- 计算机进管理提示找不到入口,如何解决Win10提示找不到入口点dllregisterserver
- Type-C接口技术(一)
- 小程序input绑定输入保存数据
- firefox被hao.360劫持的处理方法
- ASIC开发流程介绍
- 论文Robust Range Estimation with a Monocular Camera for Vision-Based FCW System解读
- ffmpeg 生成单色测试视频
- Kali与编程:Winserver 2019 搭建web服务器7-05
- 黑苹果gtx1050显卡驱动问题
- 使用phpstorm将本地代码实时自动同步到远程服务器
- 个推和极光推送技术介绍
热门文章
- python安装的模块在pycharm中能用吗_pycharm安装python模块
- php框架进入命令行,swoole为何要用命令行来启动_PHP开发框架教程
- 在JSP中使用JavaBean
- php安装mongo扩展,php安装mongo扩展和mongodb扩展
- Ssm框架实现的学生信息管理系统
- 基于JAVA+SpringMVC+Mybatis+MYSQL的旅游景点酒店预订网站设计
- 535 Login Fail. Please enter your authorization code to login. More information in http://service.ma
- oracle重启 日志_超详细的数据库主机及数据库日志收集总结
- 小米笔试题:无序数组中最小的k个数
- 常见性能问题:慢sql导致响应时间长分析定位