ОК, так как вы новичок в 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
. Все это делается со списком. В результате, например, после того, как вторая строка была обработана таким образом, 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()]
Интересная проблема и очень легко решить. В какой момент вы точно застреваете? –
У вас проблемы с чтением файла? Разбор данных? Запись в файл? – thegrinner