Как ссылаться на файл имени как на переменную, которая будет позже открыта в программе - PullRequest
1 голос
/ 24 апреля 2020

Моя программа сначала открывает пустой файл для последующего анализа.

proc = subprocess.Popen(['gedit'])
proc.wait()

Затем пользователь вставляет HTML веб-страницы и сохраняет его как:

"first_webpage. html "

Позже в коде я жестко запрограммировал его так, чтобы он открывал файл, например

webHtml = open('first_webpage.html').read()
soup = BeautifulSoup(webHtml, 'html.parser')

Как я могу сделать это, независимо от пользователя называет файл - это файл, который будет использоваться в webHtml.

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

Я думал об аргументах командной строки, но не уверен, что это лучший подход.

Кроме того, имя файла, которое выбирает пользователь, должно заканчиваться на ". html", чтобы анализ bs4 работал.

1 Ответ

0 голосов
/ 24 апреля 2020

Я рекомендую использовать модуль подпроцесса, такой как pexpect. Это позволяет вам контролировать ваш подпроцесс (чтение, запись и вставка), пока ваш пользователь взаимодействует с ним. Точно так же я бы переключился на редактор терминала (или просто использовал сам терминал). Идея состоит в том, что редактор должен записать в стандартный вывод, где файл сохраняется, после закрытия пользователя. Возможно, вам придется написать пользовательскую функцию для этого. В общем, вам нужно, чтобы подпроцесс сообщал, что файл был сохранен и где он был сохранен; и чтобы сделать это, не заставляя вашего пользователя говорить, что вам понадобится дружественный редактор.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...