• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zmienna int która nie usuwa się

Object Storage Arubacloud
0 głosów
160 wizyt
pytanie zadane 4 lutego 2019 w Python przez HelloWorld (: Początkujący (470 p.)
Witajcie.

Mam taki projekt taki jak by notatnik i chciał bym tworzyć pliki np.

Plik 1

Plik 2

i nie wiem jak zrobić tak żeby te numery na końcu zwiększały się o 1

pierwszy mój pomysł był taki żeby po prostu zapisywać zmienną do pliku i wczytywać dodawać jeden tworzyć plik

i zapisywać do pliku ale nie mogę zapisać typu String do Int bo w pliku .txt liczby są traktowane jako tekst

można to jakoś zmienić?

proszę o odpowiedź

2 odpowiedzi

+1 głos
odpowiedź 4 lutego 2019 przez Arkadiusz Sikorski Pasjonat (20,160 p.)
wybrane 5 lutego 2019 przez HelloWorld (:
 
Najlepsza

Wersja najprostsza:

nr_pliku = 1  # domyślna wartość - na wypadek błędu przy wczytywaniu
try:
	with open('config.txt', 'r') as f:
		lines = [line.strip() for line in f]
		nr_pliku = int(lines[0])  # zawartość pierwszej linii we wczytanym pliku konwertujemy na inta
except:
	print('Error while reading configuration file!')

No i podobny kod dla zapisu aktualnego numeru pliku. 

 

Zainteresuj się też plikami JSON, wczytanie i zapisanie konfiguracji jest wtedy bardzo proste i nie trzeba przejmować się ręczną konwersją plus kod ładujący/zapisujący jest dużo prostszy:

import json

# domyślna konfiguracja - na wypadek błędów przy wczytywaniu
configs = {
	'nr_pliku': 1,
	'inne_ustawienie': 1.25
}

# odczyt konfiguracji
try:
	with open('config.json', 'r') as f:
		configs = json.load(f)
except:
	print('Error while reading configuration file!')
	

# zapis konfiguracji
try:
	with open('config.json', 'w') as f:
		json.dump(configs, f)
except:
	print('Error while saving configuration file!')

Konfiguracja jest zapisywana w słowniku configs - jeśli będziesz potrzebował więcej zmiennych konfiguracyjnych wystarczy dodać je do tego słownika, a kod wczytujący/zapisujący zajmie się sam potrzebnymi konwersjami (pamiętaj tylko, że wtedy stary plik konfiguracyjny najprawdopodobniej nie będzie działać prawidłowo). Aby odwołać się do odpowiedniej zmiennej konfiguracyjnej:

configs['nr_pliku']

 

Możesz zainteresować się też modułem pickle.

komentarz 5 lutego 2019 przez HelloWorld (: Początkujący (470 p.)
a w tej najprostszej wersji  jak można zapisać tą zmienną do pliku?
0 głosów
odpowiedź 4 lutego 2019 przez RafalS VIP (122,820 p.)

Słyszałeś o rzutowaniu?

int('123') == 123
komentarz 4 lutego 2019 przez HelloWorld (: Początkujący (470 p.)
a w moim przypadku jak by to zapisać?

bo na początku nie wiem jaka będzie liczba
komentarz 4 lutego 2019 przez RafalS VIP (122,820 p.)
Pokaż jakiś kod bo nie wiem co to znaczy Twój przypadek :P
komentarz 4 lutego 2019 przez HelloWorld (: Początkujący (470 p.)
#importowanie funkcji
from funkcjie import *
import sys,os

#tworzenie zmiennych
numerZ = open("zmienna.txt", "r+")
file = open("numery.txt", "r+")

#Głuwne
menu()
try:
    wybur = int(input())
    if wybur == 1:
        for line in file.readlines():
            print(line, end="")
    if wybur == 2:
        for line in numerZ.readlines():
            numernotatki = line
            print(numernotatki)
            numerZ.write(numernotatki + 1)
    numerZ.close()
    file.close()
except:
    print("błąd")

 

Podobne pytania

0 głosów
0 odpowiedzi 211 wizyt
pytanie zadane 15 sierpnia 2019 w C i C++ przez niezalogowany
0 głosów
2 odpowiedzi 808 wizyt
pytanie zadane 13 kwietnia 2019 w C i C++ przez Rajzok Początkujący (390 p.)
0 głosów
1 odpowiedź 1,733 wizyt
pytanie zadane 22 grudnia 2015 w C i C++ przez Arturrs Nowicjusz (140 p.)

92,555 zapytań

141,403 odpowiedzi

319,560 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...