1

重複の可能性:
Pythonでテキストファイルの特定の行を編集する

ユーザーがテキストファイルにデータを書き込めるソフトウェアを書いています。ただし、テキストファイルの最初の行を削除してその行を書き直す方法がわかりません。ボタンをクリックして入力することでテキストファイルの最初の行を更新できるようにしたいのですが、実装方法がわからない最初の行として新しい行を削除して書き込む必要があります。どんな助けでもいただければ幸いです。

編集:

そのため、ファイルの最初の行を探して別の行を書き込もうとしましたが、前の行は削除されません。

file.seek(0)
file.write("This is the new first line \n")
4

2 に答える 2

3

そもそもファイルを開いた方法については説明していません。そのファイルを使用した場合file = open(somename, "a")、切り捨てられませんが、新しいデータが最後に書き込まれます (すべてではないにしてもほとんどの最新システムでのシーク後でも)。「r+」でファイルを開く必要があります)

ただし、この例では、記述した行がユーザーが入力した長さとまったく同じであると想定しています。ファイルには行編成はなく、バイトだけで、行末を示すものもあります。あなたがする必要があるのは、すべての行に対してメモリ内の一時ファイルまたは一時バッファを使用してから、最初の行を置き換えて行を書き出すことです。

物事がメモリに収まる場合(収まらないほど多くのタイプを入力するユーザーはほとんどいないと思います)、次のことができるはずです。

lines = open(somename, 'r').readlines()
lines[0] = "This is the new first line \n"
file = open(somename, 'w')
for line in lines:
    file.write(line)
file.close()
于 2012-05-25T17:28:59.447 に答える
1

readlines を使用して行の配列を取得し、配列の最初のインデックスで del を使用できます。これは役立つかもしれません。http://www.daniweb.com/software-development/python/threads/68765/how-to-remove-a-number-of-lines-from-a-text-file-

于 2012-05-25T17:10:38.240 に答える