Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.72/18: Рейтинг темы: голосов - 18, средняя оценка - 4.72
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 20

Чтение/запись файлов

22.12.2016, 18:21. Показов 3361. Ответов 9

Студворк — интернет-сервис помощи студентам
Нужна помощь.
В текстовом файле содержится информация о температуре за каждый день года. В новый файл записать среднее значение за каждый месяц.

Пример исходного файла:
Август 15 17 22 20 21
Сентябрь 12 10 11 10 8 10
Октябрь 5 0 3 6 1 3

необязательно все месяцы и дни года, главное - алгоритм.

Спасибо заранее!
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.12.2016, 18:21
Ответы с готовыми решениями:

Чтение файлов .properties
Всем привет! Есть файл, содержащий некоторые настроки по типу таких: db_Login=base db_Port=3306 db_Password=123123 ...

Json запись и чтение из файла
Товарищи, прошу помощи вот в каком деле. Необходимо мне несколько раз занести данные в файл в формате json, для последующего чтения. ...

Запись в файл и чтение из файла
Не работает часть кода с записью таблицы рекордов, пробовал разные режимы доступа к бинарным файлам - не помогло. Подскажите, в чем...

9
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
22.12.2016, 19:07
Python
1
2
3
4
with open('input.txt') as fin, open('output.txt', 'w') as fout:
    for line in fin:
        line = line.split()
        fout.write('{} {}\n'.format(line[0], sum(map(int, line[1:]))/len(line[1:])))
1
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
22.12.2016, 19:10
Python
1
2
3
4
5
6
with open ('1.txt') as info, open('out.txt','w') as out:
    list_info = [ i.split() for i in info.readlines()]
    
    for i in list_info:
        day = list(map(int, i[1:]))
        out.write (i[0] + '-' +str(sum(day)/len(day))+'\n')
1
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 20
22.12.2016, 19:18  [ТС]
Спасибо большое! мы, конечно, такое пока не проходили, но надеюсь, что препод примет.

Я пыталась решить так, пока без названия месяцев, а только с температурой, последовательно, так сказать.. :
Python
1
2
3
4
5
6
7
8
9
f=open('1.txt','r')
f1=open('2.txt','w')
s=0
for line in f:
    numbers = [float(i) for i in f.readline().split()]
    s = sum(numbers)/len(numbers)
    print(s)
    f1.write(s)
f1.close()
но он выдает ошибку на этапе записи в новый файл "write() argument must be str, not float"
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
22.12.2016, 19:23
Python
1
f1.write(s)
пытаетесь записать число в файл а функция write принимает только строки
Python
1
f1.write(str(s))
или сразу задать строку в 6ой строчке
Python
1
s = str(sum(numbers)/len(numbers))
а что вы не проходили? With ... as - менеджеры контекста?
1
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 20
22.12.2016, 19:26  [ТС]
Спасибо вам!
я пыталась преобразовать в строку, но ничего не выходило)
оказалось, что все просто)

Да, мы прошли лишь try .. except, но он жуть какой неудобный. его мы для бинарных файлов использовали
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
22.12.2016, 19:30
Цитата Сообщение от losty Посмотреть сообщение
Спасибо вам!
а результат точно требуемый получается? сдается мне что в строке
Python
1
 numbers = [float(i) for i in f.readline().split()]
закралась ошибка
0
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 20
22.12.2016, 19:38  [ТС]
именно эта операция в результате возвращал строчку с температурами. А дальше уже ошибки))
Вы предложили намного удобнее способ, буду теперь с with as работать.
0
 Аватар для Semen-Semenich
5222 / 3469 / 1173
Регистрация: 21.03.2016
Сообщений: 8,295
22.12.2016, 19:57
Цитата Сообщение от losty Посмотреть сообщение
именно эта операция в результате возвращал строчку с температурами
желательно бы вам разобраться с своим кодом чтоб понять ошибки и в дальнейшем их избегать. дело в том что вы
в этой строке
Python
1
numbers = [float(i) for i in f.readline().split()]
пытаетесь строку названия месяца 'Август' превести к типу float то есть вы не разделили названия месяца и температуры.
мой совет попробуйте это все расписать не в генераторе и вывести принт каждого цикла тогда станет намного понятней и проще найти ошибки!
0
0 / 0 / 0
Регистрация: 22.12.2016
Сообщений: 20
22.12.2016, 20:51  [ТС]
Я ведь написала, что изначально пыталась решить без названия месяца, сначала решила разобраться с температурами)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.12.2016, 20:51
Помогаю со студенческими работами здесь

Каталоги, файлы, чтение - запись
Хочу нормально освоить питон :) а по сему появилась задача сделать следующее: Есть каталок c:\FTP\Почта\ в нем есть список каталогов...

Не открывается файл на чтение и запись
Здравствуйте, дорогие форумчане! Не открывается файл одновременно на чтение и запись, из-за чего не выводится массив. Код: ...

Чтение/запись файла в двоичном формате
Пишу программу по блочным шифрам.Пишу на питоне.Возникла одна проблема.По заданию нужно открывать любой файл в двоичном...

Чтение stdout и периодическая запись в лог
коллеги всем привет. Ятолько начиаю изучать Питон и у меня вот какой вопрос возник.. Я хочу запустить некий баш скрипт корый в...

Чтение Excel файлов с openpyxl и xlrd
Моя задача состоит в следующем Я должен в папке с Excel файлами перебрать все их листы и найти ячейку со словом ИТОГО, из соседней ячейки...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru