Уведомления

Группа в Telegram: @pythonsu

#1 Март 10, 2010 15:33:09

tony733
От:
Зарегистрирован: 2010-03-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

Привет, друзья=) У меня имеется текстовый файл. Мне нужно считать строку с определенным номером. Как это можно сделать?
Варианты типа

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

не предлагайте пожалуйста! Заранее всем спасибо=)



Офлайн

#2 Март 10, 2010 15:39:44

Ferroman
От:
Зарегистрирован: 2006-11-16
Сообщения: 2759
Репутация: +  1  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

Думаете чем больше тредов вы создадите, тем больше ответов получите?

http://python.su/forum/viewtopic.php?id=6670

Офлайн

#3 Март 10, 2010 15:48:20

tony733
От:
Зарегистрирован: 2010-03-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

нет. это произошло случайно



Офлайн

#4 Март 10, 2010 16:08:34

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

:)
file.readlines()



Офлайн

#5 Март 10, 2010 17:03:57

tony733
От:
Зарегистрирован: 2010-03-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

Спасибо за ответ=) Не могли бы вы посмотреть исходник? Что-то не совсем так работает. Извиняюсь заранее за ламерство=)

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



Офлайн

#6 Март 10, 2010 17:08:01

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

tony733
IndexError: list index out of range
в вашем файле строки чем разделяются? \n или \r\n?



Офлайн

#7 Март 10, 2010 20:40:46

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

Есть у меня мнение, что

 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 строк.



Отредактировано (Март 10, 2010 22:04:02)

Офлайн

#8 Март 10, 2010 21:53:32

bazooka
От:
Зарегистрирован: 2009-04-12
Сообщения: 165
Репутация: +  0  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

UsCr
for i in range(NumOfRows):
line = temp[i]
так щяс модно по списку проходить?



Офлайн

#9 Март 10, 2010 22:02:47

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

bazooka
Код:
for i in range(NumOfRows):
line = temp[i]
Это, грубая переделка исходного кода, для проверки догадки.
Там ниже есть чуть более аккуратный аналог всего скрипта.

Ну а в принципе, да. Щас там модно. Мода онаж это, жертв требует.



Офлайн

#10 Март 10, 2010 23:14:33

tony733
От:
Зарегистрирован: 2010-03-03
Сообщения: 23
Репутация: +  0  -
Профиль   Отправить e-mail  

Как считать определенную строку в файле??

Спасибо всем за оч дельные советы=) Все получилось



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version