##dirs0.txt 内容:

1234567890123456789012345678901234567890123456789012345678901234567890

def test(flag=None):

with open('dirs0.txt', 'r+') as f:

print f.read(8)

f.truncate()

f.write('+')

f.write('*')

if flag:

f.read()

test()

##测试

test() 执行结果正常, dirs0.txt 内容变为: 12345678+*

test(True) 执行结果异常, dirs0.txt 内容有乱码:

12345678+34567890123456789012345678901234567890123456789012345678901234567890elib.rpc

unpickle_code

p4

(S'c\x00\x00\x00\x00\x00\x00\x00\x00\x02\x00\x00\[email protected]\x00\x00\x00s\x1a\x00\x00\x00d\x02\x00d\x00\x00\x84\x01\x00Z\x01\x00e\x01\x00d\x01\x00\x83\x01\x00\x01d\x02\x00S(\x03\x00\x00\x00c\x01\x00\x00\x00\x02\x00\x00\x00\x06\x00\x00\x00C\x00\x00\x00sa\x00\x00\x00t\x00\x00d\x01\x00d\x02\x00\x83\x02\x00\x8fL\x00}\x01\x00|\x01\x00j\x01\x00d\x03\x00\x83\x01\x00GH|\x01\x00j\x02\x00\x83\x00\x00\x01|\x01\x00j\x03\x00d\x04\x00\x83\x01\x00\x01|\x01\x00j\x03\x00d\x05\x00\x83\x01\x00\x01|\x00\x00rW\x00|\x01\x00j\x01\x00\x83\x00\x00\x01n\x00\x00Wd\x00\x00QXd\x00\x00S(\x06\x00\x00\x00Ns\t\x00\x00\x00dirs0.txts\x02\x00\x00\x00r+i\x08\x00\x00\x00t\x01\x00\x00\x00+t\x01\x00\x00\x00(\x04\x00\x00\x00t\x04\x00\x00\x00opent\x04\x00\x00\x00readt\x08\x00\x00\x00truncatet\x05\x00\x00\x00write(\x02\x00\x00\x00t\x04\x00\x00\x00flagt\x01\x00\x00\x00f(\x00\x00\x00\x00(\x00\x00\x00\x00s!\x00\x00\x00C:\Users\texs\Desktop\testfile.pyt\x04\x00\x00\x00test\x02\x00\x00\x00s\x0e\x00\x00\x00\x00\x01\x12\x01\x0e\x01\n\x01\r\x01\r\x01\x06\x01i\x01\x00\x00\x00N(\x02\x00\x00\x00t\x04\x00\x00\x00NoneR\x08\x00\x00\x00(\x00\x00\x00\x00(\x00\x00\x00\x00(\x00\x00\x00\x00s!\x00\x00\x00C:\Users\texs\Desktop\testfile.pyt\x08\x00\x00\x00\x02\x00\x00\x00s\x02\x00\x00\x00\x0c\t'

tRp5

tp6

(dp7

ttp8

tp9

. S R& 垶_ 訸 ?  c @ s d d ? Z e d ? d S( c C sa t d d ? 廘 } | j d ? GH| j ? | j d ? | j d ? | rW | j ? n Wd QXd S( Ns dirs0.txts r+i t +t *( t opent readt truncatet write( t flagt f( ( s! C:\Users\texs\Desktop\testfile.pyt test s

i N( t NoneR ( ( ( s! C:\Users\texs\Desktop\testfile.pyt s ... ...

##说明:

**f.truncate 之后, f.write() 和 f.read() 同时使用才会有乱码,单独使用 write() 或 read() 没有乱码

发现 f.write('+') f.write('*') 占用了两个字,然后追加到 dirs0.txt 文件尾部的内容是原始文件内容除去头部两个字的部分

+*34567890123456789012345678901234567890123456789012345678901234567890

1234567890123456789012345678901234567890123456789012345678901234567890

进一步有了删除文件中指定行代码(会在文件后添加乱码):

def test(flag=None, lineno=1):

with open('dirs0.txt', 'r+') as f:

for n in range(lineno-1):

f.readline()

tempno1 = f.tell()

f.readline()

tempno2 = f.tell()

f.truncate(tempno1)

f.write(' '*(tempno2-lineno-1)+'\n')

if flag:

f.read()

test(1, lineno=3)

最后

问题:

-1 ) f.read() 为啥会有内容写入文件,而且 f.write() 和 f.read() 要一起用才会有写入?

-2) 为什么会出现乱码?

多谢大侠指教^_^

python file read和write的速度_python file.truncate() 然后 file.write() file.read() 出现乱码...相关推荐

  1. python加快绘图速度_python 三维画图为Python加速 - python+memcached

    本来我一直不知道怎么来更好地优化网页的性能,然后最近做python和php同类网页渲染速度比较时,意外地发现一个很简单很白痴但是 我一直没发现的好方法(不得不BS我自己):直接像某些php应用比如Di ...

  2. python怎样判断一个文件是否存在_python如何判断一个文件是否存在

    python如何判断一个文件是否存在 发布时间:2020-09-23 11:38:42 来源:亿速云 阅读:82 作者:Leah python如何判断一个文件是否存在?针对这个问题,这篇文章详细介绍了 ...

  3. python游戏中调整箭头下落速度_入门 | 三行Python代码,让数据预处理速度提高2到6倍...

    原标题:入门 | 三行Python代码,让数据预处理速度提高2到6倍 选自TowardsDataScience 作者:George Seif,机器之心编译 在 Python 中,我们可以找到原生的并行 ...

  4. python安装requests库pip不是_python pip安装requests时报错,怎么解决?

    问 题 D:\Python>pip install --allow-all-external requests DEPRECATION: --allow-all-external has bee ...

  5. python中用来回溯异常的模块_python学习笔记(异常)

    什么是异常 python用异常对象(exception object)来表示异常情况.遇到错误后,会引发异常.如果异常对象并未被处理或捕捉,程序就会用所谓的 回溯(Traceback, 一种错误信息) ...

  6. python上传文件到linux服务器_python上传大文件到服务器报错

    项目需要,在mac上将打包好的文件(四五百兆)自动上传到web后台,用了两种方式上传,都报了类似的错误,在windows和linux上测试不会报错,但是到了mac打包机上就会报错: ①第一种报错: T ...

  7. python返回长度值_Python 文件 truncate() 方法(截断返回截取长度)

    概述 Python 文件 truncate() 方法用于截断文件并返回截断的字节长度. 指定长度的话,就从文件的开头开始截断指定长度,其余内容删除:不指定长度的话,就从文件开头开始截断到当前位置,其余 ...

  8. python爬虫requests源码链家_Python爬虫之---爬链家

    一个简单的实例,可以采用.做的demo. #!/usr/bin/python # -*- coding: utf-8 -*- # @Time : 2020/6/4 15:55 # @Author : ...

  9. python打包软件后报错 :SyntaxError: Non-UTF-8 code starting with ‘\x90‘ in file 的原因及解决方法

    本篇文章主要讲解,python打包软件后报错 :SyntaxError: Non-UTF-8 code starting with '\x90' in file 的原因及解决方法 作者:任聪聪 报错说 ...

最新文章

  1. Intel或将裁员数千人 谋求业务转型
  2. spring框架学习(三)
  3. (三)RocketMQ集群部署实践
  4. jpa 实体图查询_JPA实体图
  5. Javascript验证上传图片大小[前台处理]
  6. 【DevCloud·敏捷智库】如何利用故事点做估算
  7. 矩池云conda创建指定cuda cudnn tf版本的虚拟环境
  8. MySQL 性能优化神器 Explain 使用分析
  9. Sublime text2 插件推荐
  10. 爬虫-网易云音乐视频下载链接
  11. html+css+js基础问答
  12. 在线广告系统的架构变迁
  13. 1005: 整数幂 Java
  14. 2021-09-23 latex 实心圆编号
  15. matlab数据处理的优缺点,数字滤波的优缺点分析
  16. 数组的趣味应用-文曲星猜数游戏
  17. 计算机界面显示不完整,win10系统打开软件界面发现显示不全的方法介绍
  18. Spring+SpringMVC+MyBatis明日方舟版人员信息管理系统前端页面代码前后端交互+SSM框架 管理员登录 游客登录 普通用户登录 人员的增删改查 信息更新 图片上传 分页查询)
  19. MySQL高性能索引设计
  20. “沉浸式大型线下游戏”?看看这次腾讯TGC上如何玩很大!

热门文章

  1. 今天的我从来没想到的飞鸽传书2009
  2. 飞鸽传书 bbs以及个人主页服务好不热闹
  3. C++推荐书籍从入门到进阶带你走上大牛之路(珍藏版)
  4. 编程技术分享,程序员小技巧,程序员小伙伴们,你们用到了多少
  5. 一个程序员的逗逼瞬间(三)
  6. html5 字母索引,jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
  7. Vondrak滤波原理详解及Matlab实现
  8. M1兼容性怎么样?关于M1版MacBook兼容软件的测试方法
  9. mathmagic pro mac使用教程|快速地创建任何方程
  10. 1.6编程基础之一维数组_09向量点积计算