使用python将文本附加到文件的最后一行

时间:2017-02-26 13:39:28

标签: python bash shell

首先,我使用echo 'hello,' >> a.txt创建一个新文件,其中一行看起来像那样。我知道\n位于最后一行。

enter image description here

然后我从python中获取一些数据,例如“world”,我希望在第一行附加“world”,所以我使用下面的python代码:      f = open('a.txt','a') f.write("world\n") f.flush() f.close() 而且,结果如下。我知道python写入的起点是在下一行,但我不知道如何解决它。

enter image description here

2 个答案:

答案 0 :(得分:0)

在第一次创建a.txt时使用带-n选项的echo

echo -n'hello,'>> A.TXT

否则首先在列表中读取文件,在读取时对每个元素使用strip(\ n),然后在附加更多文本之前重写文件

答案 1 :(得分: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