わかりました。StackOverflow は初めてなので (ようこそ!)、順を追って説明します。あなたのファイルはtest.txt
.
with open("test.txt") as infile, open("new.txt", "w") as outfile:
必要なファイル、入力ファイル、および新しい出力ファイルを開きます。このwith
ステートメントは、ブロックが終了した後にファイルが閉じられることを保証します。
for line in infile:
ファイルを 1 行ずつループします。
values = [float(value) for value in line.split()]
これはもっと複雑です。すべての行には、スペースで区切られた値が含まれています。これらは、 を使用して文字列のリストに分割できますline.split()
。float
ただし、これらはまだ文字列であるため、最初に sに変換する必要があります。これはすべて、リスト内包表記で行われます。その結果、たとえば、2 行目がこの方法で処理された後values
、次のリストになります[0.00254, 0.00047, 0.00089]
。
results = ["1" if value < 0.05 else "0" for value in values]
という名前の新しいリストを作成していますresults
。各要素は の要素に対応しvalues
、"1"
if that value < 0.05
、または"0"
if it not になります。
outfile.write(" ".join(results))
「整数文字列」のリストをそれぞれ 7 つのスペースで区切られた文字列に変換します。
outfile.write("\n")
改行を追加します。終わり。
余分な複雑さが気にならない場合は、2 つのリスト内包表記を 1 つに組み合わせることができます。
results = ["1" if float(value) < 0.05 else "0" for value in line.split()]