1

私がやっていることはかなり基本的なことですが、何らかの理由で、必要なテキストファイルに実際には何も書き込んでいません。

私が最初にしたことは、ユーザーから入力を受け取り、それをに割り当てたことassocです。assocいつでも印刷できるので、これは問題なく機能しますが、完全に問題なく機能しているように見えます。

assoc次に、 0、1、または2に等しいかどうかに応じて、別のファイルを開きます。すべての行を読み取り、読み取った行のリストを変数betaに割り当てます。次に、ベータの長さを取得して、に割り当てますprodlen。 1つ2つ追加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ステートメントの1つだけを含めました。他のステートメントは、書き込むファイルと文字列であるVALUEを除いて同一であるためです)。リストベータを追加し\nて改行を取得し、その後に文字列を追加します。これはここでは。で表されていますVALUElocalid次に、文字列形式で最後に追加します。

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

しかし、私の本当の問題は最後の2行にあります。リストベータ版を印刷すると、追加した新しい値が含まれます。しかし、リストをファイルに書き込もうとすると、現在ファイルにあるデータがすべてクリアされ、中には何も書き込まれません。 私はPythonの初心者なので、解決策を単純にしてください(可能な場合)。これに対する解決策は比較的簡単だと思います。私はおそらく何かを見落としているだけです。

4

1 に答える 1

2

通話では'a'なく、オプションを使用'w'してください。openw上書き、追加。

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

python open組み込み関数:モードa、a +、w、w +、およびr +の違いは?

さまざまなモードの便利な説明です。

于 2013-02-20T00:44:00.537 に答える