2013-06-07 2 views
0

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

Как сделать следующую работу без возникновения ошибки во время использования:

with open('file.txt') as x: 
    head1 = x.readline('APS5000[]') 
    linenumber = 3 
    if not APU == head1: 
      for line in x.readline(linenumber): 
       print line 
       linenumber += 1 
       if x.readline(linenumber) is ('====================================================') 
         linenumber = 14 
       break 

ответ

1

Я не знаю, какое поведение вы на самом деле ожидать, но есть ряд ошибок в коде:

  • Аргумент readlines() должен быть числом байтов в качестве подсказки для размера буфера. Скорее всего, это не то, что вы ожидали отсюда.
  • Строка в качестве аргумента для readline() совершенно неверна. Вы пытались прочитать строки до этого значения?
  • Вы не можете сравнивать строки, используя is. Вместо этого используйте ==.

Попробуйте переписать код как единый цикл for line in x: - это даст вам одну строку файла за раз. При необходимости сохраните некоторые переменные состояния, чтобы убедиться, что вы находитесь и что вы видели до сих пор.

В качестве альтернативы вы можете прочитать весь файл в массиве с помощью contents = x.readlines() и обработать его оттуда.

+0

В инструкции if есть проверка, является ли строка, считающаяся равной всей строке, если она правильная, то следующая строка кода верна, иначе цикл прерывает операцию – mjsummers

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