xy1770 发表于 2020-7-19 04:29:10

追加的文本为什么在最末尾

本帖最后由 xy1770 于 2020-7-19 08:07 编辑


tf=open('//Users//helloworld//Desktop//f.txt','a')

tf.seek(0)# 移动指针 0-移动到文件开头、

tf.write('I am Da-Tian-Cai.')

tf.close()

我都移动指针到最开头了,为什么追加的内容还是在追末尾
我想追加在最开头

1q23w31 发表于 2020-7-19 06:59:40

追加不在最后在哪,,
先写在前面可以试试w写模式

xy1770 发表于 2020-7-19 07:02:47

1q23w31 发表于 2020-7-19 06:59
追加不在最后在哪,,
先写在前面可以试试w写模式

w变成覆盖了
我之前txt里有内容
我想在txt文本的最前面追加内容,不想追加在最末尾

1q23w31 发表于 2020-7-19 07:07:54

本帖最后由 1q23w31 于 2020-7-19 07:20 编辑

xy1770 发表于 2020-7-19 07:02
w变成覆盖了
我之前txt里有内容
我想在txt文本的最前面追加内容,不想追加在最末尾

with open('article.txt', 'r+') as f:
    content = f.read()      
    f.seek(0, 0)
    f.write('writer:Fatsheep\n'+content)
参考这个方法,先把文件内容读出来,再添加你要写的内容

zltzlt 发表于 2020-7-19 07:18:49

1q23w31 发表于 2020-7-19 07:07
参考这个方法,先把文件内容读出来,再添加你要写的内容

文件内容在打开时就被清空了,这样 f.read() 得到的结果是空字符串

zltzlt 发表于 2020-7-19 07:34:03

用这种方法试试:

tf = open('//Users//helloworld//Desktop//f.txt', 'r+')
content = tf.read()
tf.seek(0)
tf.write('I am Da-Tian-Cai.' + content)
tf.close()

Twilight6 发表于 2020-7-19 07:53:33


试试这样:

tf=open('//Users//helloworld//Desktop//f.txt','a')
tf.seek(0,0)
tf.write('I am Da-Tian-Cai.')

tf.close()

Twilight6 发表于 2020-7-19 08:02:01

看看 这个:

https://www.cnblogs.com/xuexizongjie/p/10674306.html

xy1770 发表于 2020-7-19 08:03:52

Twilight6 发表于 2020-7-19 07:53
试试这样:

不对啊,还是加在最末尾

Twilight6 发表于 2020-7-19 08:05:22

xy1770 发表于 2020-7-19 08:03
不对啊,还是加在最末尾

a 的 write 使用 seek 是无效的,我刚刚去查了,要从开始追加要截断好像

xy1770 发表于 2020-7-19 08:05:47

Twilight6 发表于 2020-7-19 07:53
试试这样:

指针确实是移动了,但是加的内容还是在最末尾

Twilight6 发表于 2020-7-19 08:07:00

xy1770 发表于 2020-7-19 08:05
指针确实是移动了,但是加的内容还是在最末尾

请注意,如果文件被打开使用的是’a’或’A+‘追加,任何seek()操作将在下次写时撤消。
如果该文件只打开使用 ‘A’ 追加模式写入,这种方法本质上是一个无操作,但是读取启用(模式’A+’),它在追加模式打开的文件非常有用。
如果文件在文本模式下使用“t”,只有 tell() 返回偏移开是合法的。其他偏移时会导致不确定的行为。
请注意,并非所有的文件对象都是可搜索。

xy1770 发表于 2020-7-19 08:07:03

zltzlt 发表于 2020-7-19 07:34
用这种方法试试:

---------------------------------------------------------------------------
UnsupportedOperation                      Traceback (most recent call last)
<ipython-input-4-d55e7a27c3fc> in <module>
      3 """
      4 tf=open('//Users//sunzheng//Desktop//f.txt','a')
----> 5 content = tf.read()
      6 tf.seek(0)
      7 tf.write('I am Da-Tian-Cai.' + content)

UnsupportedOperation: not readable

Twilight6 发表于 2020-7-19 08:07:46

xy1770 发表于 2020-7-19 08:05
指针确实是移动了,但是加的内容还是在最末尾

你指针移动是确实的 但是他会在下次写入时候撤销你的 seek 操作

Twilight6 发表于 2020-7-19 08:14:36

xy1770 发表于 2020-7-19 08:07
---------------------------------------------------------------------------
UnsupportedOperation...


这样即可了:

tf=open('//Users//helloworld//Desktop//f.txt','a')
tf.seek(0,0)
temp = tf.readlines()
tf.seek(0,0)
tf.truncate()
tf.write('I am Da-Tian-Cai.\n')
tf.writelines(temp)
tf.close()

zltzlt 发表于 2020-7-19 08:16:21

xy1770 发表于 2020-7-19 08:07
---------------------------------------------------------------------------
UnsupportedOperation...

你复制错了吧……
页: [1]
查看完整版本: 追加的文本为什么在最末尾