Sida 1 av 1

Kmom 3, lab 2, uppg 2.2

InläggPostat: 28 sep 2016, 12:02
av naal16
Jag har fastnat på uppgift 2.2 i lab 2, kmom 3. Behöver lite hjälp på traven! Får svar i terminalen om "type str".

Uppgift 2.2:

Find out the last 4 digits on line 821 in the file. Answer with the result as an integer.


Min lösning:
Kod: Markera allt
fhand = open('httpd-access.txt', 'r')

for line in fhand:
    row = line.find('821')
    print(row)
    lastFour = row[-4:];
    print(int(lastFour))     
fhand.close()


Tack på förhand!

Re: Kmom 3, lab 2, uppg 2.2

InläggPostat: 28 sep 2016, 12:12
av lrc
Din nuvarande loop itererar över samtliga rader i filen och sparar i varje runda undan värdet som find('821') returnerar för den aktuella raden. Titta i manualen vad denna funktion gör: den returnerar den position i strängen där söksträngen (funktionens argument) hittas, eller -1 om det inte hittas. Det är inte det du vill göra och du behöver alltså hitta ett fungerande sätt att komma fram till rad 821.

Re: Kmom 3, lab 2, uppg 2.2

InläggPostat: 28 sep 2016, 12:31
av ceruza
Läs igenom denna fråga och dess svar på stackoverflow, jag hade sparat sen sedan jag gick pythonkursen och jag tycker att det bra svar.

http://stackoverflow.com/questions/2081836/reading-specific-lines-only-python

Re: Kmom 3, lab 2, uppg 2.2

InläggPostat: 28 sep 2016, 20:57
av naal16
Tusen tack för hjälpen! Nu har jag löst den :D