當我嘗試寫入一個文件,然後讀取它,我得到一個意外的結果。
我的代碼是:
f=open("z.txt","w+")
f.write("Hello")
content=f.read()
print content
f.close()
所輸出的文件是:
Hellolףן(I11(S'QUEUE 'P1(S'exec' P2 S」 run code'p3 (cidlelib.rpc unpickle_code p4 (S'c \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 \ x00 @ \ x00 \ x00 \ x00s6 \ x00 \ x00 \ x00e \ X00 \ x00d \ X00 \ x00d \ X01 \ X00 \ X83 \ X02 \ x00Z \ X01 \ x00e \ X01 \ x00j \ X02 \ x00d \ X02 \ X00 \ X83 \ X01 \ X00 \ x01e \ X01 \ x00j \ X03 \ X00 \ X83 \ X00 \ x00Z \ X04 \ x00e \ X01 \ x00j \ X05 \ X00 \ X83 \ X00 \ X00 \ x01d \ X03 \ x00S(\ X04 \ X00 \ X00 \ x00s \ X05 \ X00 \ X00 \ x00z.txts \ X02 \ X00 \ X00 \ x00w + T \ X05 \ X00 \ X00 \ x00HelloN(\ X06 \ X00 \ X00 \ x00t \ X04 \ X00 \ X00 \ x00opent \ X01 \ X00 \ X00 \ x00ft \ X05 \ X00 \ X00 \ x00writet \ X04 \ X00 \ X00 \ x00readt \ X07 \ X00 \ X00 \ x00contentt \ X05 \ X00 \ X00 \ x00close(\ X00 \ X00 \ X00 \ X00(\ X00 \ X00 \ X00 \ X00(\ X00 \ X00 \ X00 \ x00s \ X17 \ X00 \ X00 \ x00C:/用戶/ X /桌面/ ZT \ X08 \ X00 \ X00 \ X00 \ X01 \ X00 \ X00 \ x00s \ X06 \ X00 \ X00 \ X00 \ X0F \ x01 \ r \ x01 \ x0c \ x01' tRp5 tp6(dp7 ttp8 tp9。 '2רְז|lAk!
€QG CK器PCK $ְBKאBKנBK 8Ck
XCK XBkxBk°CK |!CKנCkDk
@」(Ck~CkķצCK CK
ְPG DKDֽ~˚F€QG + ~Ck
(DK @k @k XDKר·K @fHDkhDkpDk ~Dk
נDkEk0EkPEkְ」 Kצ
ְPG!〜F,
「的Dk@k @k ר?k
我在做什麼錯?
首先,你的'.read()'將會已經返回一個空字符串,因爲寫入將文件位置放在最後。其次,'w +'模式會截斷文件,導致文件在打開時爲空。您看到的額外數據在*此程序運行後添加*。你還用這個文件做了什麼?顯示的代碼中沒有任何內容會添加額外的數據,但[pickle'模塊](http://docs.python.org/2/library/pickle.html)輸出看起來很像您在此粘貼的內容。 –