Hei, tarvitsen apua.
Minulla on tekstitiedostossa ruokatarvikkeiden nimiä alekkain:
Olen tällaisella ohjelmalla saanut haettua noita tietoja tiedostosta.
file = open("tallennus.txt", "r") ruokalista = file.readlines() for yksi in ruokalista: print(yksi)
Olen kuitenkin törmännyt ongelmiin tallennuspuolella, koska jos yritän korvata vaikka kolmannen ruokatarvikkeen, niin ei millään onnistu. Lähimmillään on käynyt niin, että uusi ruokatarvike on ilmestynyt tekstitiedostossa kyllä oikealle riville, mutta vanhan viereen, kun sen olisi pitänyt hävitä sieltä kokonaan. Tarkoitus olisi tehdä ohjelma, jossa olisi mahdottoman pitkä lista, josta voisin tarvittaessa noutaa tietoa mitä tarvitsen ja korvata vanhaa uudella, vielä oikeaan kohtaan.
Kiitos vain auttajille.
def lataa(tiedosto): # Ladataan tiedosto, poistetaan rivinvaihtomerkit. return [s.rstrip("\r\n") for s in open(tiedosto, "r")] def tallenna(tiedosto, rivit): # Tallennetaan rivit, lisätään rivinvaihtomerkit. open(tiedosto, "w").writelines(pala for rivi in rivit for pala in (rivi, "\n")) # Testiohjelma: try: rivit = lataa("lista.txt") except: print("Lataus epäonnistui!") rivit = [] print(rivit) # Lisätään viisi riviä loppuun: rivit += ["r0", "r1", "r2", "r3", "r4"] print(rivit) # Vaihdetaan rivin [3] sisältö rivit[3] = "ketsuppi" print(rivit) # Poistetaan rivi [2] rivit = rivit[:2] + rivit[3:] print(rivit) # Lisätään uusi rivi kohtaan [1] rivit = rivit[:1] + ["uusirivi[1]"] + rivit[1:] print(rivit) tallenna("lista.txt", rivit)
Voi kiitos sinulle:-)
Harjoittelen tässä samalla Tkinterin käyttöä ja olisi hienoa jos saisi siinä näkymään nuo naputtelemani ainekset(vaikka niin kuin reseptiä varten), onkohan tuo mahdollista. En vielä oikein itsekään tiedä mitä tarkoitan:-D
Lisäys:
Nyt taidan tietää mitä tarkoitan.
Siis sellaista tkinter teksti-ikkunaa missä näkyisi tuosta äskeisestä ohjelmasta tarveaineita jotka on saatu tekstitiedostosta tietyssä järjesteyksessä listaan perustuen. Kysynkin, että saisiko tällaisen onnistumaan.
Tässä tämä ongelma pähkinänkuoressa. Haluaisin vain ohjelmaan sellaisen muutoksen, että se hakisi tekstin(Hamlet) tiedostosta (tieto.txt)
from Tkinter import * root = Tk() S = Scrollbar(root) T = Text(root, height=4, width=50) S.pack(side=RIGHT, fill=Y) T.pack(side=LEFT, fill=Y) S.config(command=T.yview) T.config(yscrollcommand=S.set) quote = """HAMLET: To be, or not to be--that is the question: Whether 'tis nobler in the mind to suffer The slings and arrows of outrageous fortune Or to take arms against a sea of troubles And by opposing end them. To die, to sleep-- No more--and by a sleep to say we end The heartache, and the thousand natural shocks That flesh is heir to. 'Tis a consummation Devoutly to be wished.""" T.insert(END, quote) mainloop( )
with open("tieto.txt") as f: quote = f.read()
Ei tarvitse kikkailla riveillä.
Muista käyttää viesteissäsi kooditageja, jotta koodi näkyy oikein ja selvästi.
Ihan mielettömän paljon kiitoksia sinulle:-)
Aihe on jo aika vanha, joten et voi enää vastata siihen.