2010-11-05 2 views
7

Есть ли простой способ проверить, действительно ли путь? Теперь файл не должен существовать, мне интересно, может ли он существовать.Проверьте, допустим ли путь в Python

моя текущая версия такова:

try: 
    f = open(path) 
except: 
    <path invalid> 

Я рассматриваю просто проверить, содержит ли путь любого из these символов.

+0

Может быть 'os.path.isabs (путь)'? – helpermethod

+2

Возможный дубликат [Проверить, допустим ли путь на Python, не создавая файл по пути пути) (http://stackoverflow.com/questions/9532499/check-whether-a-path-is-valid-in-python -without-create-a-file-at-the-paths-ta) –

ответ

2

Попытка сначала - лучший способ, я рекомендую это сделать.

try: 
    open(filename, 'w') 
except OSError: 
    # handle error here 

Я считаю, что вы получите OSError, поймать, что в явном виде, и тест на платформе вы используете это на.

+0

+1 и только для справки это 'IOError: [Errno 22] неверный режим ('w') или имя файла: ...' – bernie

+3

** Проблематичный answer. ** Если 'filename' does _not_ существует, это решение тихо создает его как 0-байтовый файл. (_That, вероятно, bad._) Если 'filename' является существующим файлом, это решение молча усекает его в 0-байтовый файл. (_Th's определенно bad._) Если 'filename' является существующим каталогом, это решение вызывает исключение, которое необходимо будет отличать от искомого исключения [Errno 22]' 'IOError', описанного [bernie] (https: // stackoverflow.com/users/42346/bernie) выше. (_Это, по крайней мере, раздражает.) Короче говоря, вы, вероятно, не пытаетесь это сделать. –

0

Вы также можете попробовать ниже:

import os 
if not os.path.exists(file_path): 
    print "Path of the file is Invalid" 
+2

Это просто сообщает, существует ли файл. Вопрос конкретно задает вопрос о том, является ли путь * действительным *, а не существует ли он. – aquavitae

+0

Если файл существует, то его действительный путь naturaully и он существует – Vidz

+2

http://en.wikipedia.org/wiki/Affirming_the_consequent – aquavitae

Смежные вопросы