2010-11-05 85 views
7

Có cách nào dễ dàng để kiểm tra xem đường dẫn có hợp lệ không? Các tập tin không phải tồn tại bây giờ, tôi tự hỏi nếu nó có thể tồn tại.Kiểm tra xem đường dẫn có hợp lệ trong Python

phiên bản hiện tại của tôi là thế này:

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

tôi đang xem xét đơn giản là kiểm tra xem đường dẫn chứa bất kỳ these ký tự.

+0

lẽ 'os.path.isabs (đường dẫn) '? – helpermethod

+2

Bản sao có thể có của [Kiểm tra xem đường dẫn có hợp lệ trong Python không cần tạo tệp tại đích của đường dẫn] không (http://stackoverflow.com/questions/9532499/check-whether-a-path-is-valid-in-python -without-create-a-file-at-the-path-ta) –

Trả lời

2

Cố gắng đầu tiên là cách tốt nhất, tôi khuyên bạn nên làm điều đó.

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

Tôi tin rằng bạn sẽ nhận được OSError, nắm bắt rõ ràng và thử nghiệm trên nền tảng bạn đang sử dụng tính năng này.

+0

+1 và chỉ để tham chiếu đó là 'IOError: [Errno 22] chế độ không hợp lệ ('w') hoặc tên tệp: ...' – bernie

+3

** Có vấn đề ** Nếu 'filename' hiện _not_ tồn tại, giải pháp này âm thầm tạo ra nó như là một tập tin 0-byte. (_Đó có thể là xấu.) Nếu 'filename' là một tập tin hiện có, giải pháp này âm thầm cắt nó thành một tập tin 0-byte. (_Đó là chắc chắn xấu._) Nếu 'filename' là một thư mục hiện có, giải pháp này đưa ra một ngoại lệ cần phải được phân biệt với ngoại lệ mong muốn' [Errno 22] '' IOError' được mô tả bởi [bernie] (https: // stackoverflow.com/users/42346/bernie) ở trên. (_Đó là ít nhất là gây phiền nhiễu.) Tóm lại, bạn có thể làm _not_ muốn thử điều này. –

0

Bạn cũng có thể thử dưới đây:

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

Điều này chỉ báo cáo liệu tệp có tồn tại hay không. Câu hỏi cụ thể hỏi về liệu một con đường là * hợp lệ *, không cho dù nó tồn tại. – aquavitae

+0

Nếu tệp tồn tại, thì đó là đường dẫn hợp lệ naturaully và nó tồn tại – Vidz

+2

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

Các vấn đề liên quan