2017-02-26 70 views
-1

首先的最後一行,我使用echo 'hello,' >> a.txt創建一個新的文件,一行看起來像這樣。我知道\n是最後一行。附加文本文件與Python

enter image description here

然後我從蟒蛇的一些數據,例如「世界」,我想追加「世界」在第一線,所以我用下面的Python代碼: f = open('a.txt','a') f.write("world\n") f.flush() f.close() 而且,這裏是結果。我知道python的起點是在下一行,但我不知道如何解決它。

enter image description here

+2

但是你沒有寫回聲一個新的生產線。你可以使用'echo -n'hello'來省略。 –

+1

[前面加上行到文件的開頭](http://stackoverflow.com/questions/5914627/prepend-line-to-beginning-of-a-file)的可能的複製 – hashcode55

+2

請參見[爲什麼我可以不上傳圖片就問一個問題,所以當代碼?](http://meta.stackoverflow.com/questions/285551/why-may-i-not-upload-images-of-code-on-so-when-asking-a - 問題) –

回答

0

是使用回聲,當你創建A.TXT首次

回聲-n '你好,' >> A.TXT

否則讀文件-n選項首先在列表中,在讀取每個元素時使用strip(\ n),然後在添加更多文本之前重寫該文件

0

要覆蓋以前的文件內容,需要在'r+'模式下打開它,如this table。爲了能夠在文件中尋找任意位置,您需要以二進制模式打開它。這是一個簡短的演示。

qtest.py

with open('a.txt', 'rb+') as f: 
    # Move pointer to the last char of the file 
    f.seek(-1, 2) 
    f.write(' world!\n'.encode()) 

測試

$ echo 'hello,' >a.txt 
$ hd a.txt 
00000000 68 65 6c 6c 6f 2c 0a        |hello,.| 
00000007 
$ ./qtest.py 
$ hd a.txt 
00000000 68 65 6c 6c 6f 2c 20 77 6f 72 6c 64 21 0a  |hello, world!.| 
0000000e