Pythonを使用し全てのテキストを削除し同じファイルに新しいテキストを書き込む

Pythonを使用し全てのテキストを削除し同じファイルに新しいテキストを書き込んでみます。

■Python

今回のPythonのバージョンは、「3.8.5」を使用しています。(Windows10)(pythonランチャーでの確認)

■テキストファイルの用意

全てのテキストを削除し同じファイルに新しいテキストを書き込んでみますので、まずはテキストファイルを用意します。

今回は「C:\Users\user_\test\test.txt(フォルダパス)」内に「test.txt」というテキストファイルを作成し、テキストファイル内にテキスト(日本語)を上記のような形で書き込み、保存しました。

■全てのテキストを削除し同じファイルに新しいテキストを書き込む

では、テキストファイルの用意ができましたので、全てのテキストを削除し同じファイルに新しいテキストを書き込むができます。

■コード

text = input("書き換え後のテキストを入力してください")

file = open(r"C:\Users\user_\test\test.txt","r+")

file.truncate(0)
file.write(text)
file.close()

print("テキストの書き換えが完了しました")

全てのテキストを削除し同じファイルに新しいテキストを書き込むために、今回はtextという変数を定義し、その中でinput()関数を使用します。関数の括弧には、引数,パラメータとして、デフォルトで表示させるメッセージを渡します。これでコンソールから入力した情報がtext変数に格納されます。

格納後、fileという変数を定義し、その中でopen()関数を使用します。関数の括弧には、第1の引数,パラメータとして、先ほどのテキストファイルが置かれている場所と名前を渡します。第2の引数,パラメータは、「+r」を渡します。「+r」は、読み取りと書き込みが可能なモードで、データの先頭から書き込みされます。これでテキストファイルが「+r」で開いた状態になります。なお、書き込みした際に、テキストが文字化けする場合は、第3の引数,パラメータとして、「encoding=’utf-8’」とし、文字コードを変換すると、改善されます。

その後、truncate()関数を使用します。この関数でテキストファイルのサイズを指定されたバイト数に変更します。変更する際は関数の括弧内に,引数,パラメータとして数値を渡します。今回は「0」とします。元のバイトから「0」に変更することで、テキストファイル内に書き込みしたテキストが削除されます。

削除後、write()関数で指定されたテキストをファイルに書き込みしますので、関数の括弧内に、引数,パラメータとして、コンソールから入力した情報が格納されているtext変数を渡します。これで書き込みが行われます。

書き込み後、close()関数で「+r」で開いた状態のテキストファイルを閉じます。閉じた後に、書き込みが完了したことをユーザーに伝えるため、print()関数でテキストを出力します。

■実行・検証

このスクリプトを「text_rewrite.py」という名前で、Pythonが実行されている作業ディレクトリ(カレントディレクトリ)に保存し、コマンドプロンプトから実行してみます。

実行してみると、input()関数を使用したことで、指定したメッセージが表示され、その後にテキストに書き込む、文章を入力し、Enterキーを押します。

押すと、書き込みが行われ、完了となります。

完了後、今回用意した既にテキストを書き込みしたテキストファイルを確認すると、全てのテキストを削除され、スクリプト内で指定した新しいテキストが書き込まれていることを確認できました。

コメント

タイトルとURLをコピーしました