2010-06-01 35 views
50

Cách tốt nhất để thể hiện thư mục cửa sổ, ví dụ: "C: \ meshes \ as" là gì? Tôi đã cố gắng để sửa đổi một kịch bản nhưng nó không bao giờ hoạt động vì tôi dường như không thể có được quyền thư mục, tôi giả định vì '\' hành động như là nhân vật thoát?Đường dẫn Windows trong python

Trả lời

89

bạn có thể sử dụng luôn:

'C:/mydir' 

làm việc này cả trong linux và cửa sổ. posibility khác là

'C:\\mydir' 

nếu bạn có vấn đề với một số tên bạn cũng có thể thử chuỗi liệu:

r'C:\mydir' 

thực hành tuy nhiên tốt nhất là sử dụng các chức năng os.path module luôn lựa chọn cấu hình chính xác cho bạn Hệ điều hành:

os.path.join(mydir, myfile) 
+0

Cảm ơn các bạn, '/' đã làm việc tốt, nhưng các gợi ý khác được đánh giá cao. – Gareth

+2

@Gareth, tôi rất lười và thường thấy mình sử dụng '/'. Tuy nhiên về lâu dài việc sử dụng os.path thuận tiện hơn. Nó cũng cho phép bạn sử dụng mydir và myfile dưới dạng các biến mà bạn có thể dễ dàng sửa đổi. – joaquin

+7

Điều duy nhất phải cẩn thận với các chuỗi thô là chúng không thể kết thúc bằng \ –

13

Sử dụng mô-đun os.path.

os.path.join("C:", "meshes", "as") 

Hoặc sử dụng chuỗi nguyên

r"C:\meshes\as" 
+6

os.path.join có thể không hoạt động như bạn mong đợi khi thành phần là ký tự ổ đĩa, vì đường dẫn tương đối được cho phép ngay cả thứ vi. (Kết quả của dòng đầu tiên là 'C: meshes \\ as' trên Windows.) –

+0

Nhận xét của @ dash-tom-bang thực sự quan trọng. Có phải điều cần làm để đặt '" C: \ "' làm mục nhập đầu tiên? Điều đó có gây rối lên một số sự sạch sẽ khi sử dụng 'join'? –

+1

@ JackO'Connor đó là những gì tôi làm. Bạn chắc chắn không muốn đặt '" C: \ "' ở giữa tên tệp. Bên cạnh đó, bạn có thể sử dụng 'os.path.normpath' trước hoặc sau khi nối, để đảm bảo đường dẫn được in độc đáo. – Agostino

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