Найти - Пользователи
Полная версия: Как считать определенную строку в файле??
Начало » Python для новичков » Как считать определенную строку в файле??
1 2
tony733
Привет, друзья=) У меня имеется текстовый файл. Мне нужно считать строку с определенным номером. Как это можно сделать?
Варианты типа

cnt = 4 # номер строки которую надо считать
count = 0
for i in file.readlines():
count = count + 1
if count == cnt:
break
print i

не предлагайте пожалуйста! Заранее всем спасибо=)
Ferroman
Думаете чем больше тредов вы создадите, тем больше ответов получите?

http://python.su/forum/viewtopic.php?id=6670
tony733
нет. это произошло случайно
igor.kaist
:)
file.readlines()
tony733
Спасибо за ответ=) Не могли бы вы посмотреть исходник? Что-то не совсем так работает. Извиняюсь заранее за ламерство=)

def CountNumOfRows(file):
f = open(file)
count = 0
while f.readline():
count = count + 1
return count

def main():
InFile = open(“text.txt”, “r”)
OutFile = open(“text.xml”, “w”)
PrintStartedStrIntoXML(OutFile)
NumOfRows = CountNumOfRows(InFile.name)
for i in range(NumOfRows):
line = InFile.readlines()
print line
pass


if __name__ == “__main__”:
main()

В файле text.txt 3 строки. Выводит только первую и потом 2 traceback-а:

Traceback (most recent call last):
File “C:\Documents and Settings\msi\╠юш фюъєьхэЄ√\Tester\translator.py”, line
27, in <module>
main()
File “C:\Documents and Settings\msi\&#9568;юш фюъєьхэЄ&#8730;\Tester\translator.py”, line
21, in main
line = InFile.readlines()
IndexError: list index out of range
igor.kaist
tony733
IndexError: list index out of range
в вашем файле строки чем разделяются? \n или \r\n?
UsCr
Есть у меня мнение, что
 line = InFile.readlines()[i]
переводит каретку в конец файла и второй раз вызвать readlines не получается.
Попробуйте так:
temp = In.File.readlines()
for i in range(NumOfRows):
line = temp[i]
print line
А вообще, можно сильно упростить код:
def main():
OutFile = open("text.xml", "w")
PrintStartedStrIntoXML(OutFile)
InFile = open('text.txt', 'r')
for i in InFile.readlines():
print i
InFile.close()
if __name__ == "__main__":
main()
Аналог вашего скрипта в 6 строк.
bazooka
UsCr
for i in range(NumOfRows):
line = temp[i]
так щяс модно по списку проходить?
UsCr
bazooka
Код:
for i in range(NumOfRows):
line = temp[i]
Это, грубая переделка исходного кода, для проверки догадки.
Там ниже есть чуть более аккуратный аналог всего скрипта.

Ну а в принципе, да. Щас там модно. Мода онаж это, жертв требует.
tony733
Спасибо всем за оч дельные советы=) Все получилось
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB