Поместите число с плавающей запятой в f.write в python

У меня есть текстовый файл с (100 строк и 2 столбца), например:

1 2
2 3 

Я хочу изменить каждую строку в текстовый файл следующим образом:

x1 1 1*2
x2 2  4

x1 2 4
x2 3 6

Я использовал этот код для этого:

with open("data.txt", "r") as msg:
    data = msg.readlines()

output = 0
for line in data:
    with open(str(output)+"_parameter.txt", "w") as msg:
        for i, char in enumerate(line.strip().split()):
            msg.write("x%s %s %s*2\n" % (str(i + 1), char, char))
output += 1

Это работает хорошо. Но проблема в том, что в созданном txt файле номер сохранен как

x1 1 1*2 
x2 2 2*2 

x1 2 2*2 
x2 3 3*2 

Но я хочу сохранить число с плавающей запятой, например, вместо (2 * 2), я хочу (4) в текстовом файле. Не струна. Не могли бы вы помочь мне решить эту проблему? благодарю вас


person Mocha    schedule 11.01.2021    source источник
comment
Отвечает ли это на ваш вопрос? Безопасная оценка простого строкового уравнения   -  person Random Davis    schedule 11.01.2021


Ответы (1)


with open("data.txt", "r") as msg:
    data = msg.readlines()

output = 0
for line in data:
    with open(str(output)+"_parameter.txt", "w") as msg:
        for i, char in enumerate(line.strip().split()):
            if i == 0:
                msg.write("x%s %s %s*2\n" % (str(i + 1), char, char))
            else:
                msg.write("x%s %s %s\n" % (str(i + 1), char, str(int(char)*2)))
output += 1

И тебе привет :). Здесь вы выполняете вычисление для каждого третьего столбца x*y, кроме первой строки.

person Synthase    schedule 11.01.2021
comment
Спасибо:). Я принял ваш предыдущий ответ, но он был закрыт. Я не знаю почему. Спасибо еще раз. - person Mocha; 11.01.2021
comment
Без проблем. Вы можете принять это! (Я думаю, что вы проголосовали за это, и это круто, но вы можете нажать на серую галочку под пунктом вверх/вниз, чтобы принять :)) - person Synthase; 11.01.2021