Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: Python: Tekstitiedoston muokkaus

Kanarianlintu [07.09.2017 16:37:23]

#

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.

Metabolix [07.09.2017 21:15:52]

#

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)

Kanarianlintu [07.09.2017 22:13:49]

#

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.

Kanarianlintu [09.09.2017 17:32:03]

#

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(  )

Metabolix [09.09.2017 20:32:00]

#

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.

Kanarianlintu [11.09.2017 09:22:34]

#

Ihan mielettömän paljon kiitoksia sinulle:-)

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta