1

我所做的是非常基本的,但由于某种原因实际上并没有将任何内容写入我需要的文本文件中。

我做的第一件事是从用户那里获得输入并将其分配给assoc. 这工作得很好,因为我可以随时打印出来assoc,而且看起来工作得很好。

接下来,我根据是否assoc等于 0、1 或 2 打开一个不同的文件。我读取所有行并将读取行的列表分配给变量beta,然后获取 beta 的长度并将其分配给prodlen,添加一二prodlen并将该新值分配给localid并关闭对象。我包括这个的唯一原因是因为我担心我错过了一些重要而简单的东西。

if assoc==0:
    fob=open('pathto/textfile1.txt','r')
if assoc==1:
    fob=open('pathto/textfile2.txt','r')
if assoc==2:
    fob=open('pathto/textfile3.txt','r')

beta=fob.readlines();
prodlen=len(beta);
localid=prodlen+1;
fob.close;

在获得用户输入后,打开文件,列出其内容并读取其长度,然后我再次使用用户输入以写入权限打开文件。(我只包含了一个可能的 if 语句,因为除了写入哪个文件以及字符串 VALUE 是什么之外,其他语句是相同的)。我在 list beta\n后面加上一个换行符,后面跟着一个字符串,这里用VALUE. 然后我以字符串形式添加localid到末尾。

if assoc==0:
    fob=open('pathto/textfile1.txt','w')
    beta.append("\nVALUE"+str(localid))
    print (beta)
    fob.writelines(beta)

不过,我真正的问题在于最后两行。当我打印出列表 beta 时,它包含我附加的新值。但是当我尝试将列表写入文件时,它会清除文件中当前的所有数据,并且不会在其中写入任何内容! 我是 python 菜鸟,所以请保持解决方案简单(如果可能)。我认为解决方案相对简单。我可能只是忽略了一些东西。

4

1 回答 1

2

使用该'a'选项而不是'w'在您的open通话中。w 覆盖, a 追加。

http://docs.python.org/2/library/functions.html#open

python打开内置函数:模式a、a+、w、w+、r+的区别?

是对不同模式的有用解释。

于 2013-02-20T00:44:00.537 回答