os.path.exists () для файлов на вашем пути?

Я обычно использую os.path.exists() чтобы проверить, есть ли файл, прежде чем что-либо делать с ним.

Я столкнулся с ситуацией, когда я abspath исполняемый файл, который находится в настроенном env-пути, поэтому его можно вызвать без указания abspath .

Есть ли что-то, что можно сделать, чтобы проверить, существует ли файл до его вызова? (Я могу os.path.exists() от try/except , но сначала я ищу замену os.path.exists() )

btw – Я делаю это на окнах.

  • Получение <генераторного объекта <genexpr>
  • Python os.forkpty, почему я не могу заставить его работать
  • Что является основным примером одиночного наследования с использованием ключевого слова super () в Python?
  • Что такое «названные кортежи» в Python?
  • Как сохранить и перестроить словарь весов в тензорном потоке
  • в python, как удалить это \ n из строки или списка
  • Вызовите функцию Python из MATLAB
  • Разница между типом (obj) и obj .__ class__
  • 5 Solutions collect form web for “os.path.exists () для файлов на вашем пути?”

    Вы можете получить переменную среды PATH и попробовать «exists ()» для .exe в каждом каталоге в пути. Но это может случиться ужасно.

    пример поиска notepad.exe:

     import os for p in os.environ["PATH"].split(os.pathsep): print os.path.exists(os.path.join(p, 'notepad.exe')) 

    более умный пример:

     if not any([os.path.exists(os.path.join(p, executable) for p in os.environ["PATH"].split(os.pathsep)]): print "can't find %s" % executable 

    Есть ли конкретная причина, по которой вы хотите избежать исключения? (кроме догмы?)

    Расширение поиска Trey Stout с комментариями Карла Мейера на PATHEXT:

     import os def exists_in_path(cmd): # can't search the path if a directory is specified assert not os.path.dirname(cmd) extensions = os.environ.get("PATHEXT", "").split(os.pathsep) for directory in os.environ.get("PATH", "").split(os.pathsep): base = os.path.join(directory, cmd) options = [base] + [(base + ext) for ext in extensions] for filename in options: if os.path.exists(filename): return True return False 

    EDIT: Благодаря Авиву (в моем блоге) теперь я знаю, что есть реализация Twisted: twisted.python.procutils.which

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

    Таким образом, все еще может быть исключено исключение, даже если ваш код «определен», что файл существует. Это, в конце концов, почему они называются исключениями.

    Обычно вам не следует os.path.exists пытаться выяснить, удастся ли что-то добиться. Вы должны просто попробовать его, и если хотите, вы можете обработать исключение, если оно не сработает.

    В Unix вам нужно разбить PATH var.

     if any([os.path.exists(os.path.join(p,progname)) for p in os.environ["PATH"].split(":")]): do_something() 
    Interesting Posts

    Как вы создаете разные имена переменных в цикле? (Python)

    PyQt 4 UI замерзает

    Функция обратного вызова tkinter с переменным параметром

    Удаление элементов из списка при повторении без использования дополнительной памяти в Python

    Может ли оператор switch иметь более одной переменной?

    Создайте новый DataFrame из существующего с столбцом, содержащим список (заполните новые строки, используя список)

    Фильтр Scipy с многомерным (или нескалярным) выходом

    Где я могу найти и установить зависимости для pygame?

    Вы понимаете этот тупик?

    Как читать в файле в словаре

    Разница между numpy.genfromtxt и numpy.loadtxt и распаковка

    Как сбросить графический интерфейс пользователя Spyder IDE (Python 2.7)?

    Отслеживание приложений фляг не отображается в журнале сервера

    Как вы динамически идентифицируете неизвестные разделители в файле данных?

    У меня Python на моей системе Ubuntu, но gcc не может найти Python.h

    Python - лучший язык программирования в мире.