hjälp med kod
Hej Har en adresslista i excel på många rader, bifogat finns en exempel fil, jag har skrivit ett skript att ta bort mellanslaget mellan testvägen 20 A, mellanslaget ska bort mellan 20 och A och det ska slå igenom på alla rader som har en bokstav på slutet. Hur går jag tillväga? Tacksam för hjälp.
Det kan säkert lösas med hjälp av strip, lstrip, rstrip, re eller liknande. Men detta funkar också:
for name in data:
if len(name) >= 3 and \
name[-3] in '0123456789' and \
name[-2] == ' ' and \
name[-1] in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
name = name[:-2] + name[-1:]
rows.append(name)
Lindehaven skrev:Det kan säkert lösas med hjälp av strip, lstrip, rstrip, re eller liknande. Men detta funkar också:
for name in data:
if len(name) >= 3 and \
name[-3] in '0123456789' and \
name[-2] == ' ' and \
name[-1] in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ':
name = name[:-2] + name[-1:]
rows.append(name)
I stället för
name[-1] in 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'
kan man använda
name[-1].isupper()
Och om man accepterar alla bokstäver (både versaler och gemener) så kan man använda name[-1].isalpha()
Tjena, tack för input.. Får det dock inte att funka.. :(
Skriv gärna vad som inte funkar så är det lättare att hjälpa. Får du "Unexpected indentation" på rad 30? Då får du ta bort eller indentera rad 28.
Hej det händer inget när jag kör filen, får ingen resultatfil.
Stoppa in print på en massa ställen så du ser vad som körs.
redgranti skrev:Hej det händer inget när jag kör filen, får ingen resultatfil.
Titta på vilket felmeddelande det blir när programmet körs. Får du "Unexpected indentation" på rad 30? Om det är på det viset så kommer programkörningen att avbrytas där och ingen resultatfil skapas.
Att lägga in anrop till print-funktionen kan ibland hjälpa vid felsökning, men i detta fall är det antagligen just det som ger felet.