Я пытаюсь создать систему имен для Leaderboard. Я создал текстовые файлы для лидеров, он заполняет каждый текстовый файл в конце и читает его в таблице лидеров.Python: Получение, если переменные содержат одинаковые строковые данные
Я также сделал имена в виде текстовых файлов. Причина этого заключается в том, чтобы избежать того, чтобы пользователи вставляли одинаковые имена в текстовый файл.
Имя система:
Пользователь вводит имя в QLineEdit -> Нажмите кнопку-х, который подключается к основной функции системы имен представить -> Имя будет написано в Имени текстовых файлов.
Существует переменный список, который читает все строки в файле, в этом случае я определил его как data6
.
Я попытался это:
for name2 in self.data6:
if self.name.text() in name2:
print "True"
получил ошибку:
TypeError: 'in <string>' requires string as left operand, not QString
Пробовал это тоже:
for name2 is self.data6:
if self.name.text() in name2:
print "True"
Но заявление было ложным.
for name2 == self.data6:
if self.name.text() in name2:
print "True"
Заявление было ложным в этом буле.
self.name.text()
является QLineEdit переменная, name2
является первой переменной строки в data6 (Array переменная, которая считывает все строки в имени файла)
Как я могу получить, если self.name.text()
и name2
содержат одни и те же данные, так что я могу запретить одинаковые имена в файле ,
Или это может быть проблема PyQt, в первом коде «QString».
Просто заверните 'QString' в' str' для преобразования в строку python. –
Да, это то, что я точно сделал сейчас, и это сработало, спасибо! – ShellRox
@PaulRooney. Преобразование с использованием 'str' является ошибкой. Всегда конвертируйте с помощью 'unicode', чтобы символы не-ascii обрабатывались правильно. – ekhumoro