Привет, мир.
Поскольку я продолжаю работать над своими навыками разработки инструментов, я очень увлечен библиотеками и методами, которые не только облегчают мою жизнь, но и делают работу пользователя с моими инструментами немного более приятной.
Некоторые из разработанных мной инструментов, такие как 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.