首先,我使用echo 'hello,' >> a.txt
创建一个新文件,其中一行看起来像那样。我知道\n
位于最后一行。
然后我从python中获取一些数据,例如“world”,我希望在第一行附加“world”,所以我使用下面的python代码:
f = open('a.txt','a')
f.write("world\n")
f.flush()
f.close()
而且,结果如下。我知道python写入的起点是在下一行,但我不知道如何解决它。
答案 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