python r + read write read将垃圾写入文件

时间:2016-11-02 06:06:58

标签: python garbage

任何人都可以解释为什么会出现以下问题。 在Python 2.7.12中,当读取,写入并随后从文件中再次读取时,python似乎写入了垃圾。

例如在python中运行时IDLE:

//if (pictureBox1.Image != null)
pictureBox1.Image.Dispose();
pictureBox1.Image = (Bitmap)eventArgs.Frame.Clone();

现在查看文件的数据如下:

  

一些数据@ sb d Z d d l m Z d d d··YZ   e d k r ^ d d l m Z e d d d e e和n s S(s9
  使用History

实现Idle Shell历史记录机制      

...

对我来说,似乎是read函数开始从文件的末尾读取并进入任何对象的内存,但这只是纯粹的推测。

我查找了似乎打印到文本文件中的文本,这些数据来自:

import os 
testPath = r"myTestFile.txt"

## Make sure the file exists and its empty
with open(testPath,"w") as tFile:
    tFile.write("")

print "Our Test File: ", os.path.abspath(testPath )

with open(testPath, "r+") as tFile:
    ## First we read the file 
    data = tFile.read()

    ## Now we write some data 
    tFile.write('Some Data')

    ## Now we read the file again
    tFile.read()

现在我知道我应该在写函数之后使用Python27\Lib\idlelib\IdleHistory.py 来解决问题。但我感兴趣的是为什么会出现这个问题。

为什么最后一次read()调用似乎将数据写入文件。

谢谢!

  • 注意我在Python 2.7.12和Python 3.5.2中测试过它 在python 3.5.2中它似乎是固定的,它不会写任何垃圾数据。

0 个答案:

没有答案