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

Некоторые из разработанных мной инструментов, такие как PDF Text Extractor и Wordlister, просят пользователя ввести имя файла. Какая вещь вызывает проблемы, связанные с тем, что пользователь вводит имя файла определенным образом, например, должен ввести расширение .txt или .pdf, чтобы Python мог выбрать файл.

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

// Решение
Библиотека EasyGUI.
Это полностью поразило меня, с этой библиотекой, когда придет время для выбора файла, она откроет окно, в котором пользователь может просто выбрать файл. Отличный.

Как только он это сделает, конечно, в вашем терминале вы увидите полный путь к файлу, который мне не понравился, но для этого есть решение, и оно использует один из атрибутов библиотеки ОС, которая уже предварительно установлен с Python.

// Код
Сначала установите EasyGUI.
pip install easy-gui

Затем вы импортируете EasyGUI и ОС.
import easygui
import os

Это код для выбора файла и очистки результата. Чтобы вывести на экран только имя файла, а не весь путь.

# popup window for the user to just select the file.
file = easygui.fileopenbox()
# gives you just the name of the file, without the full path.
os.path.basename( file )

Теперь, когда вы когда-либо вызываете «файл», появляется окно, в котором пользователь может выбрать файл по своему выбору.

Это действительно сделало мои инструменты лучше, потому что теперь ни мне, ни пользователю не придется беспокоиться о вводе ТОЧНОГО имени файла и расширения, чтобы получить требуемый результат.

// Готово
Вот и все, всего несколько строк кода, но это имеет огромное значение.

Я надеюсь, что этот пост дал вам некоторые идеи.
Это был ryn0f1sh, The PyNoob.
[R/F] End Of Line.