kyosa Skrevet 13. august 2011 Del Skrevet 13. august 2011 Hei, jeg prøver å lære meg Python og har et spm til en kode jeg har laget. Koden: name = raw_input("What is your name?\n") age = raw_input("How old are you?\n") favcolor = raw_input("What is your favorite color?\n") fileObj = open("./test/test.log","w") fileObj.write(name) fileObj.write(age) fileObj.write(favcolor) fileObj.close() Jeg ønsker å få tittelen i filen å (name, age og favcolor) I dag får jeg kun det jeg skriver inn. Lenke til kommentar
snippsat Skrevet 13. august 2011 Del Skrevet 13. august 2011 Jeg ønsker å få tittelen i filen Hva mener du med tittelen,kan du gi et eksempel. Lenke til kommentar
Gjest Skrevet 13. august 2011 Del Skrevet 13. august 2011 Brukeren ønsker også få med: "What is your name?" f.eks over svaret Tipper jeg Lenke til kommentar
kyosa Skrevet 13. august 2011 Forfatter Del Skrevet 13. august 2011 Brukeren ønsker også få med: "What is your name?" f.eks over svaret Tipper jeg Ja, det er slik jeg ønsker. Gjør det mer brukervennlig;) Lenke til kommentar
snippsat Skrevet 13. august 2011 Del Skrevet 13. august 2011 (endret) Bruker with open() da lukkes fileobjektet auto. Trenger ikke og bruke close() q_name = 'What is your name?\n' q_age = 'How old are you?\n' name = raw_input(q_name) age = raw_input(q_age) with open('test.txt', 'w') as f: f.write('%s%s\n%s%s' % (q_name,name,q_age,age)) Output. What is your name? Donal How old are you? 100 Endret 13. august 2011 av SNIPPSAT 1 Lenke til kommentar
Terrasque Skrevet 13. august 2011 Del Skrevet 13. august 2011 (endret) # First, define questions to ask questions = [ "What is your name?", "What is your quest?", "What is the air-speed velocity of an unladen swallow?", ] # Add space at end of each question, looks nicer questions = [x + " " for x in questions] print "\nExample 1 (writes to example1.txt):" with open('example1.txt', 'w') as f: for question in questions: #Loop through questions answer = raw_input(question) #Ask question line = "%s %s\n" % (question, answer) #Create a line for the file f.write(line) #Write line to file print "\nExample 2 (writes to example2.txt):" with open('example2.txt', 'w') as f: f.write("\n".join(["%s %s" % (q, raw_input(q)) for q in questions]) + "\n") Du kan også spørre først, og så legge svarene i en liste. Som kan brukes senere i programmet. qa = [(q, raw_input(q)) for q in questions] print "And now for the replay" for question, answer in qa: print "->", question, answer Edit: litt mer info om denne linjen med kode : line = "%s %s\n" % (question, answer) #Create a line for the file Første %s der blir byttet ut med første i () etterpå, som er "question" variablen. Så mellomrom, så en ny %s som blir byttet ut med nr 2 i (), som er "answer" - så en \n for ny linje. Man kunne for eksempel bruke "%s\n----------\n%s\n\n" for å få en annen formatering på linjene som skrives til filen. Eller line = "%s\n%s\n%s\n\n" % (question, "-" * len(question), answer) for å få "---" delen til å være like lang som spørsmålet. Man har også string.strip() som er fin for å fjerne ekstra mellomrom (og newlines og diverse annnet rart) på begynnelsen og slutten av tekst. Edit2: String formatting dokumentasjon Man kunne også gjort : line = "%(question)s\n%(line)s\n%(answer)s\n\n" % { 'question': question, 'line': "-" * len(question.strip()), 'answer': answer, } Endret 13. august 2011 av Terrasque Lenke til kommentar
eppenepp Skrevet 15. august 2011 Del Skrevet 15. august 2011 Du har jo fått noen svar med smart kode... Men jeg ser for meg at du trenger noe enklere. Hvorfor ikke gjøre det på enklest mulig måte: name = raw_input("What is your name?\n") age = raw_input("How old are you?\n") favcolor = raw_input("What is your favorite color?\n") fileObj = open("./test/test.log","w") fileObj.write("Name: " + name +"\n") fileObj.write("Age: " + age + "\n") fileObj.write("Colour: " + favcolor +"\n") fileObj.close() -- Eppenepp Lenke til kommentar
kyosa Skrevet 16. august 2011 Forfatter Del Skrevet 16. august 2011 Takk til dere alle som bidro til denne tråden. Det fine er at jeg fikk se flere mulige måter å gjøre dette på noe som gjør at jeg kan ta de i bruke og se måter å dette på. Dette gir meg god læring. Takk Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå