Здесь я хочу создать простую exe-программу, которая удаляет дублирующихся людей с помощью pyinstaller.
Поскольку я хочу получить многострочные входные данные, я использовал:
text = sys.stdin.readlines()
, но хотяон хорошо работает на ноутбуке или шпионе Jupyter, после того, как я создаю и открываю его исполняемый файл, он не показывает ничего, кроме черного окна.если я удалю эту строку, я знаю, что она работает, но будет разрешен только однострочный ввод.
Кроме того, я пытаюсь переключить эти две строки, поэтому сначала введите sys.stdin.readlines ():
text = sys.stdin.readlines()
text = input('Type or Paste your text, and press Ctrl + Z.\n\n')
Однако, несмотря на то, что он допускает многострочный ввод, он обрабатывает только функцию дублирования в самой первой строке ввода.
Вот мой полный код.Пожалуйста, помогите мне.Спасибо
# -*- coding: utf-8 -*-
import re
import sys
def duplication():
text = sys.stdin.readlines()
text = input('Type or Paste your text, and press Ctrl + Z.\n\n')
text = re.split(", |-| |,", text)
text = list(filter(None, text)) # fastest
names = set()
remove = set()
for n in text:
if not n.startswith(("*", "-")):
n = n.lstrip()
if n in names:
remove.add(n)
elif n not in names:
names.add(n)
print(f'\n\nDuplicated person: {(sorted(remove))}\n\nTotal of {len(remove)}is/are removed, Total of {len(names)}is shown.')
print (sorted(names))
def next_move():
nxt = input("\n\nWhat do you want to do next?\n 1. Enter another text\n 2. exit\n\n")
if nxt == '1':
duplication()
next_move()
elif nxt == '2':
exit()
else:
print('Please choose between 1 and 2.')
next_move()
def overall():
duplication()
next_move()
overall()