python - 将文本文件附加到文本文件

标签 python file text

我遇到了一个错误。我一直在尝试将文本文件附加到自身,如下所示:

file_obj = open("text.txt", "a+")
number = 6

def appender(obj, num):
    count = 0
    while count<=num:
        read = file_obj.read()
        file_obj.seek(0,2)
        file_obj.write(read)
        count+=1

appender(file_obj, number)

但是,text.txt 文件中充满了奇怪的 ASCII 符号。起初,该文件只包含一个简单的“hello”,但在代码后面,它包含以下内容:

hellohello䀀 猀· d娀 Ť搀Ŭ娀ͤ攀ɪ昀Ѥ萀 夀ɚ搀ť樀Ŧ搀茀 婙ݤ攀Ѫ昀ࡤ萀 夀њ搀   
ɥ攀ժ昀൤
茀 婙୤攀ť樀ɦ搀茀 婙൤萀 ݚ搀࡚攀४攀ƃ娀਍搀⡓ 癳  祐桴湯䌠慨慲瑣牥䴠灡楰杮
䌠摯捥挠ㅰ㔲‰敧敮慲整⁤牦浯✠䅍偐义升嘯久佄卒䴯䍉䙓⽔䥗䑎坏⽓偃㈱〵吮员‧楷桴朠湥潣敤⹣祰
മഊ椊 and so on.

任何帮助将不胜感激

最佳答案

我想我可以解决你的问题,尽管我无法重现它。存在逻辑错误:写入后,无法返回到文件开头进行读取。从分析的角度来说,你没有做任何事情来诊断问题。至少,使用 print 语句来查看您正在阅读的内容:这很好地突出了问题。这是我使用的循环:

count = 0
while count<=num:
    file_obj.seek(0)      # Read from the beginning of the file.
    read = file_obj.read()
    print(count, read)    # Trace what we're reading.
    file_obj.seek(0, 2)
    file_obj.write(read)
    count+=1

这给出了 128 (2^(6+1)) 次“hello”重复的预期输出。

扩展

我建议您学习使用 for 循环和 with open ... as 习惯用法。这些将大大缩短您的程序并提高可读性。

关于python - 将文本文件附加到文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49412685/

相关文章:

c - fgets()会移动文件指针吗?

c - 用 C 将文本文件读入数组

java - 在java中编写一个具有定义的最大行数的文本文件

python - 如何像我们在 pyspark withColumn 中那样在 pandas 中动态创建新列

Python 服务器有效地处理并发 SQL 请求

python - 如何将此curl命令转换为一些执行相同操作的Python代码?

python - 如何使用 python 混合音频文件?

file - PERL 在 slurping 和 "perl -0777"s 转换为完整的 perl 文件后关闭文件

html - 我做错了什么? CSS输入类型文件并提交

windows - 批量改单行怎么办?