Странные прямоугольники, появляющиеся при написании текста в pygame

#python #text #pygame #iteration

#python #текст #pygame #итерация

Вопрос:

Я новичок в pygame и python в целом, поэтому полагаю, что здесь возможны серьезные ошибки.

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

Мне кажется очевидным, что этот символ представляет собой клавишу ‘return’. Вот текстовый файл, который я извлекаю из:

 00*It’s your favorite game console.
01*-Player's House-
  

Вот как текст отображается в игре.

И вот мой код для разбиения текстового файла на сегменты:

 with open("textList.txt", "r") as f:
    data = f.readlines()
    for line in data:
        cutInfo = line.split("*")
        if dblock.textnum == cutInfo[0]:
            self.text = cutInfo[1]
  

Мне интересно, есть ли способ избавиться от прямоугольника, просто не обрезая конец строки, и я также хочу сохранить возвращаемые значения в текстовом файле, чтобы он был более читабельным (и не сжимался в одну строку). Однако, если нет обходного пути, я полагаю, я мог бы внести эти изменения.

Комментарии:

1. Можете ли вы показать полный код?

2. Я подозреваю, что это возврат каретки или перевод строки. Откуда взялся этот текстовый файл? Какой редактор это создал? Какая операционная система?

3. Я использую Mac OS Sierra, и я создал текстовый файл в стандартном приложении TextEdit с отключенным «форматированным текстом».

Ответ №1:

for line in file: сохраняет завершающие символы новой строки.

Вы можете использовать line.strip() , чтобы избавиться от начальных и завершающих пробелов.

 cutInfo = line.strip().split("*")
  

Если вы не хотите избавляться от всех пробелов,

  • .strip('rn') удаляет только символы новой строки.
  • .rstrip('rn') избавляется только от завершающих символов новой строки.