Python
 Computer >> コンピューター >  >> プログラミング >> Python

Python:テキストファイルをリストに読み込む

データをファイルに保存すると、プログラムが動作しているデータの記録を保持できます。これは、プログラムで作業するときにデータを再度生成する必要がないことを意味します。そのデータをファイルから読み取るだけです。

ファイルを読み取るには、readlines()を使用します 方法。ファイルを読んだら、split()を使用します それらの行をリストに変換します。

このガイドでは、split()の使用方法について説明します。 テキストファイルをリストに読み込むメソッド。例を参照して、テキストファイルをリストにすばやく読み始めることができるようにします。

Python:テキストファイルをリストに読み込む

まず、grilled_cheese.txtというテキストファイルから始めましょう。このファイルには、グリルドチーズサンドイッチの材料が含まれています。ファイルの内容は次のようになります。

2 tbsp, ricotta
1 tbsp, grated parmesan
50g, mozzarella
25g, gorgonzola
2, thick slices white bread
1 tbsp, butter

ファイルの最初の列には、使用する各成分の量が含まれています。 2番目の列には成分の名前が含まれています。

open()を使用してこのファイルをコードに読み込みます およびreadlines() メソッド:

with open("grilled_cheese.txt", "r") as grilled_cheese:
	lines = grilled_cheese.readlines()
	print(lines)

このコードでは、「grilled_cheese.txt」というファイルを読み取りモードで開きます。読み取りモードは、open()では「r」文字で示されます。 声明。次に、それらの行をコンソールに出力します。

Pythonコードが何を返すか見てみましょう:

参加者の81%は、ブートキャンプに参加した後、自分たちの技術的な仕事の見通しについてより自信を持っていると述べました。今日のブートキャンプにマッチしましょう。

平均的なブートキャンプの卒業生は、ブートキャンプの開始から最初の仕事を見つけるまで、キャリアの移行に6か月も費やしませんでした。

['2 tbsp, ricotta\n', '1 tbsp, grated parmesan\n', '50g, mozzarella\n', '25g, gorgonzola\n', '2, thick slices white bread\n', '1 tbsp, butter\n']

コードは、ファイルの各行のリストを返します。これは、私たちが期待している出力ではありません。ファイルをリストに読み込んでいますが、問題があります。各行が独自の文字列に格納されています。材料とその量は別々ではありません。

値をリストに分割する

この問題を解決するには、split()メソッドを使用します。このメソッドでは、指定した区切り文字を使用して文字列を分割できます。

まず、数量と成分の2つのリストを宣言します。このコードはopen()の一部であるため、インデントされたままになります コードのブロック。

	quantities = []
	ingredients = []

ファイルからテキストの各行にアクセスできるように、リストを繰り返し処理します。次に、各行を2つの部分に分割します。分割点は、各行のコンマとそれに続くスペースです:

for l in lines:
		 as_list = l.split(", ")
		 quantities.append(as_list[0])
		 ingredients.append(as_list[1])

forループを使用すると、ファイルを1行ずつ読み取ることができます。 「as_list」の最初の値は、材料の量です。 2番目の値は材料の名前です。次に、これらのリストの両方をコンソールに出力します。

	print(quantities)
	print(ingredients)

コードを実行してみましょう:

['2 tbsp, ricotta\n', '1 tbsp, grated parmesan\n', '50g, mozzarella\n', '25g, gorgonzola\n', '2, thick slices white bread\n', '1 tbsp, butter\n']
['2 tbsp', '1 tbsp', '50g', '25g', '2', '1 tbsp']
['ricotta\n', 'grated parmesan\n', 'mozzarella\n', 'gorgonzola\n', 'thick slices white bread\n', 'butter\n']

このコードは、3つのリストをコンソールに出力します。最初のリストは、ファイル内のすべてのテキスト行のリストです。 2番目のリストには、ファイルのすべての数量が含まれています。 3番目のリストにはすべての材料が含まれています。

新しい行を削除

私たちがしなければならない改善がまだ1つあります。すべての材料は「\n」文字で終わります。この文字は改行を示します。 replace()メソッドを使用してこの文字を削除できます:

for l in lines:
	   	  as_list = l.split(", ")
		  quantities.append(as_list[0])
		  ingredients.append(as_list[1].replace("\n", ""))
>

forループでは、値「\n」を空の文字列に置き換えます。これは、各成分の名前に相関するas_list[1]値で行います。

この変更を行ったので、プログラムの準備が整いました:

with open("grilled_cheese.txt", "r") as grilled_cheese:
	   lines = grilled_cheese.readlines()

	   quantities = []
	   ingredients = []

	   for l in lines:
	  			 as_list = l.split(", ")
			     quantities.append(as_list[0])
			     ingredients.append(as_list[1].replace("\n", ""))

	   print(quantities)
	   print(ingredients)

コードを実行して、何が起こるか見てみましょう:

['2 tbsp', '1 tbsp', '50g', '25g', '2', '1 tbsp']
['ricotta', 'grated parmesan', 'mozzarella', 'gorgonzola', 'thick slices white bread', 'butter']

コードは、テキストファイルを2つのリストに正常に変換します。 1つのリストには、レシピの材料の量が含まれています。もう1つのリストには、レシピに使用する材料が含まれています。

結論

open()を使用してテキストファイルを読み取ることができます およびreadlines() メソッド。テキストファイルをリストに読み込むには、split()を使用します 方法。このメソッドは、文字列を特定の文字のリストに分割します。

上記の例では、コンマとスペース(“、”)の位置に基づいて文字列をリストに分割します。これで、エキスパートのようにPythonでテキストファイルをリストに読み込む準備ができました。


  1. Python読み取りファイル:ステップバイステップガイド

    open()関数はファイルを開きます。ファイルを読み取るには、「r」モードを使用する必要があります。 read()、readline()、readlines()関数は、開いたファイルの内容を返します。 Pythonは、データを処理する場合に使用できる便利なプログラミング言語です。この言語には、データやファイルの読み取り、書き込み、操作を簡単にするいくつかの組み込み関数があります。 従業員の名前のリストがあり、ユーザーの名前がそのリストに含まれているかどうかを確認するとします。従業員名のリストをファイルとして保存できます。次に、Pythonを使用してそのファイルを読み取り、従業員の名前が

  2. Windows11でフォルダのファイルリストをテキストファイルにコピーする方法

    Windows 11のファイルエクスプローラには、フォルダのファイルリストをテキストファイルにコピーするための組み込みオプションがありません。フォルダ内のすべてのファイルを手動で選択し、パスとしてコピーを選択できます ディレクトリパスをファイルに貼り付けます。ただし、これはフォルダのファイルリストを設定するための理想的な方法ではありません。 ファイルリストをフォルダからテキストファイルにコピーするための2つの優れたWindows11の方法があります。 1つの方法は、コマンドプロンプトコマンドを入力することです。別の方法では、フォルダのファイルリストをクリップボードにコピーするための新しいコン