Python を使用してファイル内の文字列を置き換える
ファイル処理は、Web アプリケーションの重要な側面です。Python は、他のプログラミング言語と同様に、ファイル処理をサポートしています。これにより、プログラマーはファイルを処理し、基本的に、読み取り、書き込み、およびファイルを操作するための他のファイル処理オプションなどの基本的な操作を実行できます。
open()
関数を使用して、Python プログラムでファイルを開くことができます。ファイルは、ユーザーが決定するテキストモードまたはバイナリモードのいずれかで開くことができます。open()
関数にはいくつかのモードがあり、それらはすべて、開くファイルにさまざまなアクセシビリティオプションを提供します。
Python の文字列という用語は、一重引用符または二重引用符で囲まれた Unicode 文字のクラスターとして説明できます。文字列は、Python コードで開くテキストファイル内に含めることができます。
このチュートリアルでは、Python でファイル内の文字列を置き換えるさまざまな方法について説明します。
入力ファイルと出力ファイルが異なる場合は、replace()
関数を使用する
Python の replace()
メソッドは、サブ文字列を検索して別のサブ文字列に置き換えるために使用されます。
replace()
関数には、oldvalue
、newvalue
、および count
の 3つのパラメーターがあります。oldvalue
と newvalue
はどちらも必須の値であり、関数に count
パラメーターを提供することはオプションです。
次のコードは、入力ファイルと出力ファイルが異なる場合に、replace()
関数を使用して Python の文字列を置き換えます。
# the input file
fin = open("f1.txt", "rt")
# the output file which stores result
fout = open("f2.txt", "wt")
# iteration for each line in the input file
for line in fin:
# replacing the string and write to output file
fout.write(line.replace("gode", "God"))
# closing the input and output files
fin.close()
fout.close()
上記のコードの出力では、ファイル内の文字列 gode
が単語 God
に置き換えられます。
上記のコードでは、f1.txt
と f2.txt
の 2つの異なるファイルを同時に処理しています。f1.txt
はテキスト読み取り rt
モードで開かれ、fin
を参照します。f2.txt
はテキスト書き込み wt
モードで開かれ、fout
を参照します。次に、for
ループが繰り返され、ファイル内で文字列 gode
が出現するたびに、単語 God
に置き換えられます。次に、close()
関数を使用して必要な操作を行った後、両方のファイルを閉じます。
入力と出力に 1つのファイルのみが使用される場合は、replace()
関数を使用する
この方法では、同じファイルが入力と出力の両方として使用されます。
ここでは、replace()
関数とともに with
ステートメントを使用します。with
コンテキストマネージャーには、プログラムを短くして読みやすくするという基本的な機能があります。
ファイル処理で with
ステートメントを使用する場合、Python コードで開いたファイルを手動で閉じる必要はありません。with
ブロックが終了すると、自動的に閉じます。
次のコードは、入力ファイルと出力ファイルが同じ場合に、replace()
関数を使用して Python の文字列を置き換えます。
with open("file1.txt", "rt") as file:
x = file.read()
with open("file1.txt", "wt") as file:
x = x.replace("gode", "God")
fin.write(x)
次のコードは、入力ファイルと出力ファイルの両方として file1
を取ります。まず、ファイルがテキスト読み取り rt
モードで開かれ、ファイルの内容が読み取られて変数に格納されます。次に、ファイルを閉じて再度開きますが、今回はテキスト書き込みモード wt
です。文字列が置き換えられ、このモードでデータが書き込まれた後、ファイルが閉じられます。
Vaibhhav is an IT professional who has a strong-hold in Python programming and various projects under his belt. He has an eagerness to discover new things and is a quick learner.
LinkedIn関連記事 - Python File
- Python でディレクトリのすべてのファイルを取得する方法
- Python でファイルにテキストを追加する方法
- Python にファイルが存在するかどうかを確認する方法
- 特定の拡張子を持つファイルを Python でのみ見つける方法
- Python でファイルから特定の行を読み取る方法
- Python で gzip ファイルを読み取る