好的,既然您是 StackOverflow 的新手(欢迎!),我将引导您完成此操作。我假设您的文件名为test.txt
.
with open("test.txt") as infile, open("new.txt", "w") as outfile:
打开我们需要的文件,我们的输入文件和一个新的输出文件。该with
语句确保在退出块后关闭文件。
for line in infile:
逐行循环文件。
values = [float(value) for value in line.split()]
现在这更复杂了。每行包含空格分隔的值。可以使用 将它们拆分为字符串列表line.split()
。但它们仍然是字符串,所以必须先转换为float
s。所有这些都是通过列表理解完成的。结果是,例如,在以这种方式处理第二行之后,values
现在是以下列表:[0.00254, 0.00047, 0.00089]
.
results = ["1" if value < 0.05 else "0" for value in values]
现在我们正在创建一个名为 的新列表results
。每个元素都对应于 的一个元素values
,如果它是一个,如果不是,"1"
它就是一个。value < 0.05
"0"
outfile.write(" ".join(results))
将“整数字符串”列表转换回字符串,每个字符串由 7 个空格分隔。
outfile.write("\n")
添加一个换行符。完毕。
如果您不介意额外的复杂性,这两个列表推导可以合并为一个:
results = ["1" if float(value) < 0.05 else "0" for value in line.split()]