Уведомления

Группа в Telegram: @pythonsu

#1 Май 3, 2023 18:14:46

barsuk
Зарегистрирован: 2023-05-03
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите, пожалуйста! Работа с файлами

Дан текстовый файл, каждая строка которого содержит несколько чисел, разделенные пробелами (вещественные числа имеют ненулевую дробную часть). Создать файл целых чисел, содержащий все целые числа из исходного файла (в том же порядке).

Офлайн

#2 Май 3, 2023 21:06:17

ZerG
Зарегистрирован: 2012-04-05
Сообщения: 2578
Репутация: +  58  -
Профиль   Отправить e-mail  

Помогите, пожалуйста! Работа с файлами

 import os
fname = "/file.txt"
fname_result = "/result.txt"
fpath = os.path.join(os.getcwd() + fname)
fpath_result = os.path.join(os.getcwd() + fname_result)
new_lines = []
with open(fpath) as data:
    for line in data.readlines():
        valid_numbers = []
        for number in line.split():
            try:
                if int(number):
                    valid_numbers.append(number)
            except ValueError:
                pass
                # print(f"The {number} was skiped.")
        new_lines.append(valid_numbers)
with open(fpath_result, "w") as result:
    for line in new_lines:
        result.write(" ".join(line) + "\n")



Влодение рускай арфаграфией - это как владение кунг-фу: настаящие мастира не преминяют ево бес ниабхадимости

Офлайн

#3 Май 3, 2023 23:45:43

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9716
Репутация: +  842  -
Профиль   Отправить e-mail  

Помогите, пожалуйста! Работа с файлами

  
#!/usr/bin/env python3
 
# Дан текстовый файл, каждая строка которого содержит несколько чисел,
# разделенные пробелами (вещественные числа имеют ненулевую дробную
# часть). Создать файл целых чисел, содержащий все целые числа из
# исходного файла (в том же порядке).
 
def is_number(s):
    return '.' not in s
 
def run():
    ifname = 'file.txt'
    ofname = 'output.txt'
    with open(ifname, encoding='utf-8') as fin, \
         open(ofname, 'w', encoding='utf-8') as fout:
        for line in fin:
            numbers = ' '.join(filter(is_number, line.split()))
            if numbers:
                print(numbers, file=fout)
 
run()
file.txt
12 34 56
12.5 34.0 56.3
12.8 10 34.3
78 90 56.0
output.txt
12 34 56
10
78 90



Отредактировано py.user.next (Май 3, 2023 23:46:07)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version