Vinnaren i pepparkakshustävlingen!
2017-04-28, 11:35
  #1453
Medlem
inneskos avatar
Citat:
Ursprungligen postat av nittrick
tack de löste problemet. glömde att nämna att jag vill skriva in flera saker i i filen på ny rad varje gång.
förstår att jag ska lägga till ett \n någonstans men får bara syntaxerror
hur får jag ny rad efter "text_file.write(str(runtime))"?
Kod:
if maxvalue < 10:
        if x == 1:
            print(time.strftime('%H:%M:%S'))
            endtime = time.time()
            runtime = endtime - starttime
            print(runtime)
            text_file = open('temp.txt','a')
            text_file.write(str(runtime))
            text_file.close()

Det bör nog fungera med text_file.write('\n' + str(runtime)).

Edit: Kanske är smartare att skriva text_file.write(str(runtime) + '\n') eftersom det inte ger en tom rad i början av filen.
__________________
Senast redigerad av innesko 2017-04-28 kl. 11:40.
Citera
2017-04-28, 11:45
  #1454
Moderator
Neksnors avatar
Citat:
Ursprungligen postat av nittrick
tack de löste problemet. glömde att nämna att jag vill skriva in flera saker i i filen på ny rad varje gång.
förstår att jag ska lägga till ett \n någonstans men får bara syntaxerror
hur får jag ny rad efter "text_file.write(str(runtime))"?
Kod:
if maxvalue < 10:
        if x == 1:
            print(time.strftime('%H:%M:%S'))
            endtime = time.time()
            runtime = endtime - starttime
            print(runtime)
            text_file = open('temp.txt','a')
            text_file.write(str(runtime))
            text_file.close()
Tecknet (ja, det är ett tecken) \n betyder "ny rad" och placeras i texten (alltså innanför "") där du vill byta rad. Googla escape characters.
Citera
2017-05-01, 07:37
  #1455
Medlem
jag ska göra en highscore i ett spel jag gjort, där resultat ska printas ut i en fil sedan på datorn. Typ "Om ens tid är bland de 10 bästa får man möjligheten att lägga till sitt namn i topplistan.

Det finns tre olika topplistor beroende på hur stort minfält som används."

jag har använt mig av koden

Kod:
def highscore():
    self.highscoreList.sort() #Sorterar listan man har med highscores (behövs ju inte om den redan är sorterad)
    if playerScore > self.highscoreList[0]: #Om spelarens poäng högre än lägsta highscore
       print namn('Vad är ditt användarnamn?') #här är det dock fel.
        self.highscoreList[0] = playerScore #Byt ut det lägsta mot spelarens
            #Nånting sånt här iallafall...
        file = open("/Volumes/Min SSD/Users/Jag/Desktop/Python/highscore.txt", "w")
        for highscore in self.highscoreList: #Sen skriva till fil!
            file.write(highscore) #Skriver highscores till filen, en för varje rad
            file.write("hej")
            file.close()

men det sker ingenting, jag har testat open, read, "r", "w".
Sedan så ska jag väl ha en input med ens användarnamn också? den blir fel.
Citera
2017-05-01, 09:08
  #1456
Moderator
Protons avatar
Citat:
Ursprungligen postat av melyhna
jag ska göra en highscore i ett spel jag gjort, där resultat ska printas ut i en fil sedan på datorn. Typ "Om ens tid är bland de 10 bästa får man möjligheten att lägga till sitt namn i topplistan.

Det finns tre olika topplistor beroende på hur stort minfält som används."

jag har använt mig av koden

Kod:
def highscore():
    self.highscoreList.sort() #Sorterar listan man har med highscores (behövs ju inte om den redan är sorterad)
    if playerScore > self.highscoreList[0]: #Om spelarens poäng högre än lägsta highscore
       print namn('Vad är ditt användarnamn?') #här är det dock fel.
        self.highscoreList[0] = playerScore #Byt ut det lägsta mot spelarens
            #Nånting sånt här iallafall...
        file = open("/Volumes/Min SSD/Users/Jag/Desktop/Python/highscore.txt", "w")
        for highscore in self.highscoreList: #Sen skriva till fil!
            file.write(highscore) #Skriver highscores till filen, en för varje rad
            file.write("hej")
            file.close()

men det sker ingenting, jag har testat open, read, "r", "w".
Sedan så ska jag väl ha en input med ens användarnamn också? den blir fel.
Kan ingen python direkt, men jag kan googla.

Hjälper sidan http://stackoverflow.com/questions/7...line-arguments för hur du ska få in din input?
Kod:
var = raw_input("Please enter something: ")
print 
"you entered", var 
Beträffande din filskrivning ser det väl inte så underligt ut. Om du hoppar över att loopa igenom skräpet i dina listor och istället bara skriver ut EN rad till filen, funkar det bättre då?

Börja med att få filskrivningen att funka med EN hårdkodad sträng, när den funkar kan du fundera på fina listor.
Citera
2017-05-01, 09:23
  #1457
Medlem
NereMedOlas avatar
Citat:
Ursprungligen postat av melyhna
jag ska göra en highscore i ett spel jag gjort, där resultat ska printas ut i en fil sedan på datorn. Typ "Om ens tid är bland de 10 bästa får man möjligheten att lägga till sitt namn i topplistan.

Det finns tre olika topplistor beroende på hur stort minfält som används."

jag har använt mig av koden

Kod:
def highscore():
    self.highscoreList.sort() #Sorterar listan man har med highscores (behövs ju inte om den redan är sorterad)
    if playerScore > self.highscoreList[0]: #Om spelarens poäng högre än lägsta highscore
       print namn('Vad är ditt användarnamn?') #här är det dock fel.
        self.highscoreList[0] = playerScore #Byt ut det lägsta mot spelarens
            #Nånting sånt här iallafall...
        file = open("/Volumes/Min SSD/Users/Jag/Desktop/Python/highscore.txt", "w")
        for highscore in self.highscoreList: #Sen skriva till fil!
            file.write(highscore) #Skriver highscores till filen, en för varje rad
            file.write("hej")
            file.close()

men det sker ingenting, jag har testat open, read, "r", "w".
Sedan så ska jag väl ha en input med ens användarnamn också? den blir fel.
Du stänger filen i loopen, så det blir knas andra gången den kommer dit. Jag tror att du kan behöva skriva en sträng också och highscoreList är nog full av siffror av något slag.
Citera
2017-05-01, 10:11
  #1458
Medlem
Citat:
Ursprungligen postat av NereMedOla
Du stänger filen i loopen, så det blir knas andra gången den kommer dit. Jag tror att du kan behöva skriva en sträng också och highscoreList är nog full av siffror av något slag.

Men, den ska väl va i loppen? definitionen, för annars måste jag ju definiera den på nytt? eller hur menar du att den inte ska va i loppen ^^
Citera
2017-05-01, 10:16
  #1459
Medlem
Citat:
Ursprungligen postat av Proton
Kan ingen python direkt, men jag kan googla.

Hjälper sidan http://stackoverflow.com/questions/7...line-arguments för hur du ska få in din input?
Kod:
var = raw_input("Please enter something: ")
print 
"you entered", var 
Beträffande din filskrivning ser det väl inte så underligt ut. Om du hoppar över att loopa igenom skräpet i dina listor och istället bara skriver ut EN rad till filen, funkar det bättre då?

Börja med att få filskrivningen att funka med EN hårdkodad sträng, när den funkar kan du fundera på fina listor.

haha skräp (fast really ) nej, men... hur skulle du skriva ut den till en rad då? raw_input finns ju inte kvar i python, så skrev
def highscore():
Kod:
    var = input("Please enter something: ")
    print("you entered"), var  händer iofs fortfarande ingenting,men kanske har med övriga koden å göra
    self.highscoreList.sort() #Sorterar listan man har med highscores (behövs ju inte om den redan är sorterad)
    if playerScore > self.highscoreList[0]: #Om spelarens poäng högre än lägsta highscore
        self.highscoreList[0] = playerScore #Byt ut det lägsta mot spelarens
            #Nånting sånt här iallafall...
        file = read("/Volumes/Melinas SSD/Users/Melina/Desktop/Python/antibiot.txt", "r")
        for highscore in self.highscoreList: #Sen skriva till fil!
            file.write(highscore) #Skriver highscores till filen, en för varje rad
            file.write("hej")
            file.close()
Citera
2017-05-01, 10:31
  #1460
Moderator
vhes avatar
Citat:
Ursprungligen postat av melyhna
Men, den ska väl va i loppen? definitionen, för annars måste jag ju definiera den på nytt? eller hur menar du att den inte ska va i loppen ^^

filen skall finnas tillgänglig i loopen. Den skall inte stängas i loopen. Jämför:
Kod:
file = open('filenfil.txt', 'w')
for letter in ['a', 'b', 'c']:
    file.write(letter)
file.close()

med
Kod:
file = open('filenfil.txt', 'w')
for letter in ['a', 'b', 'c']:
    file.write(letter)
    file.close()

I det första blocket kommer 'abc' att skrivas ner till filen. I det andra blocket kommer endast 'a' att skrivas, därefter stängs filen. 'b' och 'c' kommer inte gå att skriva.

Citat:
Ursprungligen postat av melyhna
haha skräp (fast really ) nej, men... hur skulle du skriva ut den till en rad då? raw_input finns ju inte kvar i python

Byt ut raw_input mot input, om du använder python3. I övrigt gäller det proton skrivit.
Citera
2017-05-01, 12:30
  #1461
Moderator
Protons avatar
Citat:
Ursprungligen postat av melyhna
haha skräp (fast really ) nej, men... hur skulle du skriva ut den till en rad då? raw_input finns ju inte kvar i python, så skrev
def highscore():
Kod:
    var = input("Please enter something: ")
    print("you entered"), var  händer iofs fortfarande ingenting,men kanske har med övriga koden å göra
    self.highscoreList.sort() #Sorterar listan man har med highscores (behövs ju inte om den redan är sorterad)
    if playerScore > self.highscoreList[0]: #Om spelarens poäng högre än lägsta highscore
        self.highscoreList[0] = playerScore #Byt ut det lägsta mot spelarens
            #Nånting sånt här iallafall...
        file = read("/Volumes/Melinas SSD/Users/Melina/Desktop/Python/antibiot.txt", "r")
        for highscore in self.highscoreList: #Sen skriva till fil!
            file.write(highscore) #Skriver highscores till filen, en för varje rad
            file.write("hej")
            file.close()
Verkar som om scopet begränsas av dina paranteser som jag inte skrivit om nånstans, men som du ville ha med ändå. Vad händer om du tar väck dem, då borde det funka?
Citera
2017-05-02, 11:10
  #1462
Medlem
Citat:
Ursprungligen postat av Proton
Verkar som om scopet begränsas av dina paranteser som jag inte skrivit om nånstans, men som du ville ha med ändå. Vad händer om du tar väck dem, då borde det funka?
Nää fungerar ändå inte, måste ha ()
Citera
2017-05-02, 11:11
  #1463
Medlem
Citat:
Ursprungligen postat av vhe
filen skall finnas tillgänglig i loopen. Den skall inte stängas i loopen. Jämför:
Kod:
file = open('filenfil.txt', 'w')
for letter in ['a', 'b', 'c']:
    file.write(letter)
file.close()

med
Kod:
file = open('filenfil.txt', 'w')
for letter in ['a', 'b', 'c']:
    file.write(letter)
    file.close()

I det första blocket kommer 'abc' att skrivas ner till filen. I det andra blocket kommer endast 'a' att skrivas, därefter stängs filen. 'b' och 'c' kommer inte gå att skriva.


men jag har ju den så och den skriver ändå inte ut ngt,
Citera
2017-05-02, 22:00
  #1464
Medlem
knullJesuss avatar
Citat:
Ursprungligen postat av melyhna
men jag har ju den så och den skriver ändå inte ut ngt,
Om du numera stänger filen utanför loopen kanske du försöker skriva något annat än en sträng. Vad får du för felmedelande egentligen?
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback