2016-07-19 2 views
-2

Я хочу создать файл настроек, чтобы мой скрипт python мог запомнить настройки после перезагрузки. Я использовал команду f.readline(), но результат отличается от количества строк, которые я читаю.readline() не выводит правильную строку

пример: текст документа

1 
2 
3 

и когда я использую этот скрипт для вывода информации.

f = open("test.txt", "r") 

print(f.readline(1)) 
print("-") #i used this to see if the output is blank since it will leave a empty space  
print(f.readline(2)) 
print("-") 
pirnt(f.readline(3)) 
print("-") 

выход:

- 
1 
- 


- 
2 

- 

может кто-то объяснить, что я делаю неправильно или как я могу это исправить?

+0

Каков ожидаемый выход? –

+0

Вы проверили документы, чтобы узнать, что такое число (например, 2 в f.readline (2))? – ayhan

+0

'f.readline()' без передачи числа ** сохраняет ** чтение файла с того места, где он был остановлен ранее. Это означает, что вы можете опустить все числа, и вы получите то, что хотите. И вы, вероятно, забыли пустую строку в верхней части вывода. –

ответ

0

Параметр readline - это не номер строки, которую вы хотите прочитать, а количество байтов, которое вы хотите.

Чтобы получить доступ к файлу по строке номер вы можете использовать readlines():

f = open("test.txt", "r") 
lines = f.readlines() 
print(lines[0]) 
print("-") #i used this to see if the output is blank since it will leave a empty space  
print(lines[1]) 
print("-") 
pirnt(lines[2]) 
print("-") 

Имейте в виду, что readlines() извлечь все файлы сразу, а не построчно. Иногда это не то, что вы действительно хотите сделать.

1

Сигнатура readline принимает необязательный размер аргумент, который вы указали, что, однако, не нужно, если вы собираетесь прочитать файл построчно:

f.readline(1) 
#  ^read 1 byte 

Параметр не синоним номер строки как принимаете.

Поскольку вы действительно собираетесь читать построчно, вы не должны указывать этот параметр размера:

f.readline() # reads one line at a time 

пустая строка будет возвращать '\n' и в конце файла, вы будете иметь '' ,

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