Умножить числа из файла на n и вывести в другой файл в таком же виде
Пишу простенькую программу для умножения чисел из файла на n (например, на 2), но так, чтобы форматирование не сбивалось. Пока получилось только считать и вывести строку. Пример файла:
{16,32,64,128}
{1,2,3,4,5,6,7}
должно получиться:
{32,64,128,256}
{2,4,6,8,10,12,14}
Пока написал только это:
f=open("qpsk", "r")
o=open("qpskout", "w")
for line in f:
o.write(line)
f.close()
o.close()
Ответы (2 шт):
Автор решения: Vadim.Sharoikin
→ Ссылка
Наверное я сильно перемудрил, но выводит в таком же виде. Если возникнут вопросы, спрашивайте.
with open('qpsk', 'r') as f:
nums = f.read().splitlines()
o=open("qpskout", "w")
for el in nums:
left = el.find('{')
right = el.find('}')
a = el[left + 1:right]
b = a.split(",")
data = ','.join(str(int(i)*2) for i in b)
new_data = '{' + data + '}'
o.write("%s\n" % new_data)
o.close()
Автор решения: Михаил Муругов
→ Ссылка
In [5]: with open("in_file.txt", "r") as fp_in, open("out_file.txt", "w") as fp_out: # Открываем файлы
...: for line in fp_in: # Итерируемся по каждой строке входного файла
...: nums = map(int, line.strip("{}\n").split(",")) # Убираем мусор в виде скобок и переноса строки, разбиваем по запятым, приводим к числам
...: x2_nums = (num*2 for num in nums) # Умножаем каждое число на 2
...: fp_out.write("{{{}}}\n".format(",".join(map(str, x2_nums)))) # Записываем в выходной файл умноженные числа через запятую со скобками и переносами строк