1. ホーム
  2. python

[解決済み] Pythonで既存のファイルに行を追加する

2023-06-07 06:53:01

質問

私はテキストファイルの最初の行に1行を追加する必要があり、私に利用可能な唯一のオプションは、私がpythonから期待するよりも多くのコードの行であるように見えます。このようなものです。

f = open('filename','r')
temp = f.read()
f.close()

f = open('filename', 'w')
f.write("#testfirstline")

f.write(temp)
f.close()

もっと簡単な方法はないのでしょうか?さらに、この 2 つのハンドルの例は、読み取りと書き込みのために 1 つのハンドルを開く (「r+」) よりもよく見かけますが、なぜでしょうか?

どのように解決するのですか?

Pythonは多くのことを簡単にし、多くの一般的な操作のためのライブラリやラッパーを含んでいますが、その目的は基本的な真実を隠すことではありません。

あなたがここで遭遇している基本的な真実は、一般的に、構造全体を書き換えることなく、既存のフラット構造にデータを追加することはできないということです。これは言語に関係なく当てはまります。

ファイルハンドルを保存したり、コードを読みにくくしたりする方法があり、その多くは他の回答で提供されていますが、どれも基本的な動作を変えません。既存のファイルを読み込んで、次に前置したいデータを書き出し、その後に読み込んだ既存のデータを書き込む必要があります。

ぜひともファイルハンドルを節約してください。しかし、この操作をできるだけ少ない行数のコードに詰め込もうとは思わないでください。実際、最も少ないコード行数を求めてはいけません。それは難読化であり、プログラミングではありません。