36 880 besökare online
858 325 medlemmar • 45 874 284 inlägg
Användarnamn 
Lösenord
Flashback Forum > Dator och IT > Systemutveckling > Python
Svara på ämne
Ämnesverktyg
Ribbentrop
Medlem
Ribbentrops avatar
Försöker få åäö att funka i Python med wxPython, jag har inkluderat
Kod:
# -*- coding: cp1252 -*-
högst upp i koden men detta funkar inte med I/O av filer, då får jag nämligen det här felmeddelandet:

Citat:
Traceback (most recent call last):
File "K:\PortablePython_1.1_py2.6.1\skapaGUI.py", line 191, in OnClick
self.write_file("fragor.txt", self.question)
File "K:\PortablePython_1.1_py2.6.1\skapaGUI.py", line 167, in write_file
fo.write(answer);
UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-2: ordinal not in range(128)

åäö på knappar och dyligt funkar finfint. Jag har även testat med

Kod:
def write_file(self, filename, answer): fo = open(filename, "a") fo.write(answer).decode("cp1252"); fo.close()

utan resultat.
__________________
Särskrivning är en dödssynd.
 
SSH
Medlem
SSHs avatar
Citat:
Ursprungligen postat av Ribbentrop
Försöker få åäö att funka i Python med wxPython, jag har inkluderat
Kod:
# -*- coding: cp1252 -*-
högst upp i koden men detta funkar inte med I/O av filer, då får jag nämligen det här felmeddelandet:
Detta säger bara vilken teckenkodning filen använder. Jag tror att det först och främst påverkar hur unicode-konstanter (strängar med u framför sig, exempelvis u'åäö') tolkas.
Citat:
åäö på knappar och dyligt funkar finfint. Jag har även testat med

Kod:
def write_file(self, filename, answer): fo = open(filename, "a") fo.write(answer).decode("cp1252"); fo.close()

utan resultat.
Kod:
def write_file(selffilenameanswer):
        
fo open(filename"a")
        
fo.write(answer.encode("cp1252"))
        
fo.close() 
Ska det väl ändå vara. encode gör om från unicode till en byte-sträng, medan decode gör det omvända. Se också till att answer är en unicode-sträng, annars försöker Python tolka det som en ASCII-kodad byte-sträng när den gör om det till unicode.
 
Ribbentrop
Medlem
Ribbentrops avatar
Citat:
Ursprungligen postat av SSH
Detta säger bara vilken teckenkodning filen använder. Jag tror att det först och främst påverkar hur unicode-konstanter (strängar med u framför sig, exempelvis u'åäö') tolkas.

Kod:
def write_file(selffilenameanswer):
        
fo open(filename"a")
        
fo.write(answer.encode("cp1252"))
        
fo.close() 
Ska det väl ändå vara. encode gör om från unicode till en byte-sträng, medan decode gör det omvända. Se också till att answer är en unicode-sträng, annars försöker Python tolka det som en ASCII-kodad byte-sträng när den gör om det till unicode.
Ja nu funkar det! Tack så mycket!
__________________
Särskrivning är en dödssynd.
 
yockie
Medlem
Kort sagt, jag gör ett program där användaren själv kan fylla i antalet av olika saker, grafiskt tkinter. Hittar dock ingen button eller scrollbar så man kan välja detta. Tänk ställa väckarklockan på iphone mm. Någon som har kod på en liknande eller sida där jag kan hitta? Alternativt att när man klickar på en button som det står "0" på blir det "1", "2" osv..
 
Ribbentrop
Medlem
Ribbentrops avatar
Är det någon som vet ifall det går att göra Python-filer till endast en körbar .exe-fil? Jag har hittat py2exe men då får man en massa annat skit också i en komprimerad fil. Egentligen gör just det ingenting men i mitt program har jag textfiler som jag inte vill att användaren ska kunna se.
__________________
Särskrivning är en dödssynd.
 
Beynondavies
Medlem
Beynondaviess avatar
Hej! Det är så att jag har nyligen börjat använda Python igen efter att jag inte har använt det på ett halvår. Jag har problem med lite kod och jag kan inte se vad felet är:
Kod:
def get_profile(name): for x in profillista(): if profiles in profillista print profiles

I koden ovanför detta så skapar jag profiler och lägger till i profillistan.

Värt att nämna också är att jag inte är helt hemma på allting gällande python, mer van vid webbprogrammering.
__________________
Senast redigerad av Beynondavies 2012-07-31 kl. 15:00.
 
Beynondavies
Medlem
Beynondaviess avatar
Nvm. Jag lösten det
 
Beynondavies
Medlem
Beynondaviess avatar
Nu fick jag mer fel(syntax):

Kod:
def get_profile(name): for name in profillista(): if profile in profillista: print profile
__________________
Senast redigerad av Beynondavies 2012-07-31 kl. 15:31.
 
vhe
Moderator
vhes avatar
Citat:
Ursprungligen postat av Beynondavies
Nu fick jag mer fel(syntax):

Kod:
def get_profile(name): for name in profillista(): if profile in profillista: print profile

Ser massvis med möjliga fel, men inget syntaxfel. Rekommenderar att du postar kod tillsammans med traceback/felmeddelande när du får fel.
 
Ralfrune
Medlem
Är helt ny med python och försöker lära mig grundläggande genom en kurs på KTH, har problem med en fråga som jag verkligen inte kommer på hur jag ska lösa. Hjälp uppskatas!

Vad kommer att skrivas ut av följande program?



n = 2while
n < 7: print("x", end=" ")
if n > 4: print("y", end=" ")
n += 1
 
Zom
Moderator
Zoms avatar
Citat:
Ursprungligen postat av Ralfrune
Är helt ny med python och försöker lära mig grundläggande genom en kurs på KTH, har problem med en fråga som jag verkligen inte kommer på hur jag ska lösa. Hjälp uppskatas!

Vad kommer att skrivas ut av följande program?



n = 2while
n < 7: print("x", end=" ")
if n > 4: print("y", end=" ")
n += 1
Ingenting, eftersom du skrivit fel. För det första, använd code-taggar för att bevara indenteringen, det är något python är noggrann med, annars funkar exempelvis inte while.

För det andra, se till att vara noggrann med vad du skriver vart. n = 2while är exempelvis felaktigt.

Antagligen menade du att koden skulle se ut såhär:
Kod:
n = 2 while n < 7: print ("x", end=" ") if n > 4: print ("y", end=" ") n += 1

Vad den däremot matar ut kan du se om du kör den i python. Använd python3.
__________________
"I'm huge... I'm magnificent!"
Moderator i Övriga O/S, Psykologi, Sociologi,
Benso, Opiater och Nätapotek
sarkastisk och dryg på IRC
<HardstyleFreak> fuck you knarkar lowlifes
 
Ralfrune
Medlem
Jo så den såg ut bara slarvigt inskrivet av mig. Jag har dock jävla svårt för att få in den här och tro mig jag sitter och testar men förstår inte hur jag ska få till det. Inte för att vara en twat men det du skrev hjälper inte mig specielt mycket.
 
Svara på ämne
Topp Dela »