
Мой опыт работы с функцией get_file_info
Я всегда стараюсь использовать разные функции, чтобы облегчить себе работу. И своим коллегам я предоставляю только лучшие инструменты. Один из таких полезных инструментов – это функция get_file_info, которую я сам разработал. Она позволяет получить информацию о файле, включая путь, имя и расширение.Я долго искал способ получить информацию о файле без использования функции os.path.splitext. В итоге, я создал функцию get_file_info, которая принимает на вход абсолютный путь до файла в виде строки.python
def get_file_info(path)⁚
# Находим индекс последнего символа ‘/’ (разделитель пути в UNIX-системах)
last_slash_index path.rfind(‘/’)
# Проверяем, найден ли символ ‘/’ в пути
if last_slash_index ! -1⁚
# Если символ найден, выделяем путь, используя слайсы
directory path[⁚last_slash_index 1]
else⁚
# Если символ не найден, считаем, что путь является именем файла без пути
directory »
# Находим индекс последней точки в строке
last_dot_index path.rfind(‘.’)
# Проверяем, найден ли символ ‘.’ в пути
if last_dot_index ! -1⁚
# Если символ найден, выделяем расширение файла
extension path[last_dot_index 1⁚]
else⁚
# Если символ не найден, расширение файла не существует
extension »
# Выделяем имя файла из пути
filename path[last_slash_index 1⁚last_dot_index] if last_dot_index ! -1 else path[last_slash_index 1⁚]
# Возвращаем кортеж с полученной информацией
return directory, filename, extension
Чтобы увидеть, как работает моя функция, я попробовал ее на нескольких примерах. Например, я использовал путь ″/Users/john/Documents/file.txt»:
python
path ″/Users/john/Documents/file.txt»
result get_file_info(path)
print(result)
Ожидаемым результатом является кортеж (‘/Users/john/Documents/’, ‘file’, ‘txt’). И моя функция успешно вернула такой результат.Однако, я хотел еще проверить ее на разных вариантах файловых путей. Например, путь ″/Users/john/Documents/»:
python
path ″/Users/john/Documents/»
result get_file_info(path)
print(result)
В этом случае ожидаемым результатом является кортеж (‘/Users/john/Documents/’, », »). И моя функция также вернула правильный результат.
Таким образом, я удовлетворен работой функции get_file_info. Она позволяет получить информацию о файле без использования функции os.path.splitext. Если у вас возникнет необходимость в подобной информации, я настоятельно рекомендую использовать эту функцию.