Найти - Пользователи
Полная версия: Запись/чтение в файл
Начало » Python для новичков » Запись/чтение в файл
1 2 3 4
also1
Спасибо, за разъяснения.
doza_and
Вот что может например получиться:
Это, конечно, может у меня получиться, но хотя-бы через пару месяцев с начала изучения змеиного языка.
Програмку пишу не для внедрения в жизнь, а в качестве практики и на ней разбираюсь, и надеюсь, что с течением времени она дойдет до предложенной.
Еще вопрос:
Если обращаться к последней строчке геморройно, то может в файле создавать список и обращаться к нему. В списке-же можно обратиться к последнему объекту по индексу (-1)
Это можно реализовать?
py.user.next
Пришли файл ввода. Пришли полученный из файла ввода файл результата
На данный момент это TXT файлы с единственным числом в формате строка.
AD0DE412
https://pypi.org/project/tailer/

ну или
 file = "file.txt"
f = open(file, 'r')
lines = [i for i in f]
f = open(file, 'w')
f.writelines([lines[-1], *lines[:-1]])
f.close()

это по строкам а вот что умнее .. вы вобще что хотите то в итого?
а вся история показаний и оплат.
эт вам db мутить надо например >>
also1
ФФФСё придумал: Через создание третьего файла.
Просьба потыкать меня носом, где накосячил.
[code python]from datetime import date
today = date.today()
td=today
print(td)
with open("003.txt", 'r', encoding='utf-8') as f:
st_pok = f.read()
print("Старые показания: ", st_pok, 'KWt')
st_pok = int(st_pok)
pok = int(input("Введите показания: "))
if pok < st_pok:
print("Не правильно введены показания. Повторите ввод")
print("Старые показания", st_pok)
exit()
rashod = pok - st_pok
print("Расход", rashod, 'KWt')
pok = str(pok)
with open("003.txt", 'w', encoding='utf-8') as f:
f.write(pok)
tarif = 4.65
print('Сумма к оплате: ', "%.2f" % (rashod * tarif), ' руб.')
with open("many.txt", 'r', encoding='utf-8') as f:
saldo = f.readline()
saldo = float(saldo)
print("Было на счете: ", saldo, 'Руб.')
print("Можно оплатить: ", "%.2f" % (rashod * tarif - saldo), 'Руб.')
opl = float(input("Введите сумму: "))
saldo = "%.2f" % (opl + saldo - rashod * tarif)
print("На балансе осталось: ", saldo, 'Руб.')
saldo = str(saldo)
with open("many.txt", 'w', encoding='utf-8') as f:
f.writelines(saldo + '\n')
with open("istor.txt", 'a', encoding='utf-8') as f:
f.write(str(td) + ' ' + 'Показание: ' + pok + ' ' + 'Оплата: '+ str (opl) + ' Остаток: ' + saldo + '\n')
q = input("Для закрытия нажмите любую клавишу")[/code]
py.user.next
doza_and
Я бы тут добавил. “Адаптируй решение задачи под возможности языка программирования”.
Надо сначала составить алгоритм, а потом уже выбрать язык для реализации этого алгоритма. Вот как раз чёткого и ясного алгоритма у него и не видно. А для обнаружения шагов алгоритма надо проанализировать свои собственные действия. Нигде не видно, что то, что он пытается написать, правильно составлено алгоритмически
AD0DE412
вы бы пример дали .. чели .. что ни буть .. простое но наглядное .. алглритмов етих разработку
а то не понятно как их разрабатывать не блок схемы же рисовать
also1
AD0DE412
вы бы пример дали .. чели .. что ни буть .. простое но наглядное .. алглритмов етих разработку
а то не понятно как их разрабатывать не блок схемы же рисовать
Это к кому?
AD0DE412
https://python.su/forum/post/205989/
py.user.next
AD0DE412
вы бы пример дали .. чели .. что ни буть .. простое но наглядное
Простой пример алгоритма:

Алгоритм “Сходить в магазин”
1. Одеться.
2. Взять деньги.
3. Открыть дверь.
4. Выйти из квартиры.
5. Закрыть дверь.
6. Выйти из дома на улицу.
7. Дойти до магазина.
8. Зайти в магазин.
9. Сделать покупки.
10. Выйти из магазина.
11. Дойти до дома.
12. Зайти с улицы в дом.
13. Открыть дверь.
14. Зайти в квартиру.
15. Закрыть дверь.
16. Положить продукты.
17. Раздеться.

Как видишь, тут каждое действие может быть простым, а может быть составным. Простые действия - это атомарные (неразложимые), а составные действия можно разложить на другие действия, так же являющиеся простыми или составными. Обрати внимание, что мы первое и последнее действия сделали обратными по отношению друг к другу. Откуда мы начинали выполнение алгоритма, туда мы и вернулись после его выполнения. Это связано с тем, что алгоритмы могут выполняться один за другим. Если мы весь алгоритм “Сходить в магазин” рассмотрим как одно составное действие в каком-то алгоритме, то мы можем составить алгоритм, ничего не меняя в алгоритме “Сходить в магазин”, и получить осмысленное действие.

Алгоритм “Закупить разные продукты”
1. Сходить в магазин.
2. Сходить в магазин.
3. Сходить в магазин.

Так мы можем сцеплять разные алгоритмы в одно целое.

А вот урок по информатике для школьников ссылка. Там более подробно описано классическое понятие алгоритма. Его нужно знать, но это далеко не всё, что кроется в алгоритмах. На самом деле, между шагами алгоритма кое-что спрятано, что и помогает выразить каждое действие точно.


В данном же топике алгоритма нет. Вместо алгоритма какая-то муть. И он для этой мути пытается написать решение.
alloy
 mylist = myfile.readlines() #Прочитает файл и построчно сформирует список
print(mylist) #А вот и список
print(len(mylist)) #Узнаем длину списка
#В списке 4 элемента. Индекс последнего будет равен 3
myoldindex = int(mylist[3])# Присваиваем значение последнего индекса переменной
print(myoldindex)
#Теперь можно сравнивать с новым показанием
myfile.close()
myfile = open("demo.txt", "a")#Открываем файл для добавления
myfile.write("104")# Добавляем с новой строчки
myfile.close()#Как-то так
Может пригодится.
Если пользователь имеет доступ к файлу, он может изменить последнюю строку в файле, добавив любые буквы, тогда последнее значение из списка уже не получится сделать целым числом.

Кто-то писал, что для таких целей лучше подойдёт база данных. В жкх так вся информация и храниться.
Vladimirv
also1
хочу сделать, чтоб в файлах сохранялась бы не только последнее значение, а вся история показаний и оплат.
Для этого вам нужна база данных. Через полгода вы не будете знать к какому месяцу циферки у вас в файле. У вас нет дат. БД позволит вам выбирать данные по периодам и строить например, график расхода электричества или еще чего-то.
Сейчас же просто складывайте данные в файл по месяцам, один файл на 1 месяц, год не забудьте. Потом сообразите, как все это запихнуть в БД.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB