Kezdőoldal » Számítástechnika » Programozás » Python 2. x-ben hogy lehet az...

Python 2. x-ben hogy lehet az alábbi problémát orvosolni?

Figyelt kérdés

Van egy beadandó, amiben az kell, hogy van egy data,txt meg egy update.txt.

data.txt:

1. kenyér; jó; 1230

2. lámpa, rossz; 340

3. mosógép; közepes; 3450

4. tv; jó; 45000


update.txt:

1. 1200

2. elem; AAA; 345

4. tv; 120 cm; 2300000


Ezekből kell megcsinálni a newdata,txt fájl, ami így néz(ne) ki:

1. kenyér; jó; 1200

2. elem; AAA; 345

3. mosógép; közepes; 3450

4. tv; 120 cm; 2300000


Hogy lehetne ezt Pythonban kivitelezni?



#beadandó #Pythzon #wtf; probléma #Python 2.x
2018. ápr. 1. 15:04
 1/8 anonim ***** válasza:

Hol van az "alábbi probléma"?

Itt egy feladat van.

Árajánlatot szeretnél rá?

2018. ápr. 1. 15:18
Hasznos számodra ez a válasz?
 2/8 anonim ***** válasza:
Megnyitod a fájlokat, beolvasod az adatokat majd kiírod egy új új fájlba amit kell.
2018. ápr. 1. 15:43
Hasznos számodra ez a válasz?
 3/8 anonim ***** válasza:
En 5000-ert megcsinalom
2018. ápr. 1. 17:04
Hasznos számodra ez a válasz?
 4/8 anonim ***** válasza:
"problémát orvosolni" != "kivitelezni"
2018. ápr. 1. 21:27
Hasznos számodra ez a válasz?
 5/8 anonim válasza:

1. Soronként beolvasod a két file-t és listákat csinálsz belőlük


2. Az update.txt-ből készült lista elemeit átírod a jó helyre


3. Az így keletkezett listát mented elemenként, új sorokba

2018. ápr. 3. 14:00
Hasznos számodra ez a válasz?
 6/8 A kérdező kommentje:

Jó, valóban inkronkrét voltam.

Nos az elképzelésem megvan, de a kivitelezéssel van gond.

Így néz ki a kód:

#!/usr/bin/python


i=0

faz,fnev,ftul,far=[],[],[],[]

f=open("data.txt", 'r')

for line in f:

int(faz[i]),fnev[i],ftul[i],int(far[i])=[line.split(".",";")]

i=i+1

f.close()


k=0

gaz,gmod=[],[]

g=open("update.txt", 'r')

for line in g:

int(gaz[k]),gmod[k]=line.split(".")

k=k+1

g.close()

i=0

k=0

h=open("newdata.txt", 'w')

if faz[i]<gaz[k]:

h.write(faz[i],".",fnev[i], ";", ftul, ";", far,"\n")

i=i+1

elif faz[i]>gaz[k]:

try:

nazov,kvalita,cislo=gmod[k].split("; ")

except SyntaxError:

int(nazov)=gmod[k]

h.write(faz[i],".",fnev[i],";",ftul[i],";",nazov,"\n")


else:

int(cislo)=cislo

h.write(faz[i],".",nazov,";"kvalita,";",cislo,"\n")


finally k=k+1

else:

if gmod[k]=="visszavon" or gmod[k]=="visszavon\n":

i,k=i+1,k+1

else:

try:

nazov,kvalita,cislo=gmod[k].split("; ")

except SyntaxError:

int(nazov)=gmod[k]

h.write(faz[i],".",fnev[i],";",ftul[i],";",nazov,"\n")


else:

int(cislo)=cislo

h.write(faz[i],".",nazov,";"kvalita,";",cislo,"\n")


finally i,k=i+1,k+1

h.close()

Mindig panaszkodik, hogy nem jó az except SyntaxError. Ezt kéne orvosolni.

2018. ápr. 3. 20:30
 7/8 anonim ***** válasza:
Hú.
2018. ápr. 3. 21:53
Hasznos számodra ez a válasz?
 8/8 sharkxxx ***** válasza:

A SyntaxError azt jelenti, hogy valamit rosszul írtál. A hibaüzenetben benne van, hogy melyik sorban van az a szintaxis hiba.

Ha az az IDE amit használsz nem írja ki hogy melyik sorban van a szintaxis hiba, akkor cseréld le egy másikra.

[link]

2018. ápr. 6. 18:37
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!