Чтение файла .m, а Python продолжает читать символ в файле .m в виде строки? - PullRequest
1 голос
/ 30 мая 2019

Я пытаюсь прочитать текст в файле .m на Python, и Python продолжает читать один символ в файле .m в виде строки, когда я использую file.readline ().У меня также были проблемы с попыткой удалить определенные части строки перед добавлением ее в список.

Я пытался настроить положение readline для циклов, которые я установил, так как мне нужно читатьчерез несколько файлов в этой программе.Независимо от того, где я это поместил, строка всегда выходит разделенной символом.Я новичок в Python, поэтому я стараюсь изо всех сил, чтобы узнать, что делать.

# Example of what I did
with open('MyFile.m') as f:
   for line in f:
       text = f.readline()
       if text.startswith('%'):
         continue
       else:
          my_string = text.strip("=")
          my_list.append(my_string)

Это сработало лишь частично, так как оно по-прежнему будет возвращать части строк, которые мне не нужны, и при попыткеотформатируйте вывод, поместив пробелы между новыми строками, которые он выводит, примерно так: Ожидаемый: «Строка». Что произошло: «Т он Строка»

Ответы [ 2 ]

2 голосов
/ 30 мая 2019

Без вашего входного файла мне пришлось бы здесь угадать

Входной файл:

%
The
%
String
%

Решение:

my_list = []

with open('MyFile.m') as f:
    for line in f:
        if not line.startswith('%'):
            my_list.append(line.strip("=").strip())
print(' '.join(my_list))

Вызов readLine ()было ненужным, так как цикл for уже дает вам линиюПустое значение if было отменено, чтобы поймать только ту часть, о которой вы заботились.Без вашего реального входного файла я не могу помочь с частью '='.Если у вас есть какие-либо разъяснения, я был бы рад помочь в дальнейшем.

0 голосов
/ 30 мая 2019

Как рекомендует Ксандер, вам не следует вызывать readline, поскольку for line in f сделает это за вас.

my_list = []
with open('MyFile.m') as f:
   for line in f:
       line = line.strip()   # lose the \n if you want to
       if line.startswith('%'):
           continue
       else:
           my_string = line.strip("=")
           my_list.append(my_string)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...