ベストアンサー
Pythonでテキストファイルをクリアするにはどうすればよいですか?
ほとんどの言語では、書き込み用にファイルを開いてから閉じるだけで十分です。私が使用するイディオムは次のとおりです。
with open(theFile, “w”) as fp:
pass
これにより、長さ0のファイルが残るはずです。
問題は、なぜこれを実行するのかということです。ファイルを削除したい場合は、ファイルを削除してください(os.removeを参照)。上書きする場合は、最初にクリアする必要はありません。書き込み用に開き、新しいコンテンツを書き込みます。
回答
古いバージョンのPythonでは、テキストファイルとバイナリファイルの違いは、Pythonが行区切り文字を処理する方法に関係していました(ほとんどの場合、関連するだけです)。 MS-DOS / Windowsでのテキストファイル(行末にCR / LF文字ペアを使用)および古いMacintoshシステム(MacOS Xより前)のテキストファイル(CR、キャリッジリターン(\ r)またはASCII 0x0Dを使用)の処理LFの代わりに(改行、\ n、ASCII 0x0A、Unix、Linux、およびMacOS Xで使用されます)。
これは通常、Python2インタープリターによって自動検出され、たまに超過する必要がありました。ただし、Python 2以前では、すべてのファイルを単純なバイトストリーム(8ビットASCII文字と交換可能)として扱うことができました。の「b」フラグ/モードopen()ファイルをバイナリとして扱うためは、行末だけでした。
Python 3では、話はもっと複雑です。しかし、単純な考え方は、テキストファイルがデフォルトであり、一部として扱われるということです。 Unicodeのエンコーディング(UTF-8またはUS-ASCIIなど)。ファイルをバイナリとして処理するには、ファイルを開くときにmode引数に「b」フラグを追加するだけです。しかし現在、そのファイルに対するすべての操作には、文字列ではなくバイトオブジェクトが必要です。したがって、読み取りはバイトを返し、ividを呼び出すにはデータをバイトとしてキャストする必要があります。 = “f1c82958de”>