2015-12-18 2 views
-2
inputFile = open("pets.txt", 'r') # Makes File object 
outputFile = open("results.csv", "w") 
dictionary = {} # Our "hash table" 
compare = "https://en.wikipedia.org/wiki/" # urls will compare against this string 

for line in inputFile: 
    lineToRead = inputFile.readline() 
    # ---- testing ---- 
    print line # for some reason this prints the last line in pets.txt which is mouse 
    print str(lineToRead) # for some reason this doesn't print the current line that was read 
    print lineToRead 
inputFile.close() 

По какой-то причине единственное, что печатается, - mouse. Мой входной файл выглядит так:Как читать строки из строки и печатать на Python?

cat 
dog 
bird 
mouse 

Я никогда не программировал на Python.

+3

Вы понимаете, что пропустите строки, прочитав файл, когда вы читаете файл? Это должно быть просто 'для строки в inputFile: print line'. – TigerhawkT3

+5

Если вы никогда не программировали на Python, вы должны изучить некоторые Python перед написанием кода в нем. – TigerhawkT3

+0

Ничего себе, я никогда об этом не думал! – fatalError

ответ

1

Хорошая попытка!

Это на самом деле проще, чем вы думаете:

inputFile = open("pets.txt", 'r') 
for line in inputFile: 
    print line 
inputFile.close() 

Это потому, что Python выдает readline() для вас в каждой итерации этого цикла for.

Но что, если вы хотите сделать это сами, просто чтобы узнать, как это делается?

inputFile = open("pets.txt", 'r') 

lineToRead = inputFile.readline() # read the first line 
print lineToRead 

lineToRead = inputFile.readline() # read the second line 
print lineToRead 

lineToRead = inputFile.readline() # read the third line 
print lineToRead 

lineToRead = inputFile.readline() # read the fourth line 
print lineToRead 

inputFile.close() 

Попробуйте!

Конечно, это работает только в том случае, если pets.txt имеет только 4 линии. Для того, чтобы улучшить это, вы могли бы поставить этот код в цикле:

inputFile = open("pets.txt", 'r') 

lineToRead = inputFile.readline() # read the first line 
print lineToRead 

while "there's still lines to read": 
    lineToRead = inputFile.readline() # read the following lines 
    print lineToRead 

inputFile.close() 

Там есть небольшая проблема - Python не понимает, что вы имеете в виду под «есть еще строки для чтения». Но, если вы читаете the tutorial, вы заметите, что readline() возвращает пустую строку, когда она дошла до конца документа. Итак:

inputFile = open("pets.txt", 'r') 

lineToRead = inputFile.readline() # read the first line 
print lineToRead 

while lineToRead != '': 
    lineToRead = inputFile.readline() # read the following lines 
    print lineToRead 

inputFile.close() 

Надеюсь, вы смогли следовать за мной. Если бы вы этого не сделали, не волнуйтесь. Продолжайте пытаться!

Смежные вопросы