2011-01-13 30 views
10

Có cách nào dễ dàng trong Python để giải quyết toán tử đường dẫn như .. không? Ví dụ: có cuộc gọi chức năng sẽ chuyển đổi: /../../test/../path thành /path?Sửa đường dẫn '../../' trong python

Trả lời

19

Bạn có thể sử dụng os.path.realpath() để nhận đường dẫn chuẩn. Để có đường dẫn tương đối chuẩn hóa, hãy sử dụng os.path.normpath().

+0

realpath() là hàm tổng quát. Hoạt động hoàn hảo. Cảm ơn. – rook

2

bạn có thể sử dụng chức năng os.path.abspath từ os.path

5

Bạn có thể sử dụng abspath trong module os.path.

os.path.abspath (đường dẫn)

Return một bình thường tuyệt đối phiên bản của con đường tên đường dẫn. Trên hầu hết các nền tảng , điều này tương đương với normpath (tham gia (os.getcwd(), đường dẫn)).

3

Nếu bạn đang sử dụng thư viện pathlib, phương pháp sử dụng là resolve:

In [304]: print(p) 
/group_workspaces/cems2/fiduceo/Users/gholl/logs/2016/08/10/srf_errorprop/../../../../../scratch/accidentally_deleted_shift_log 

In [305]: print(p.resolve()) 
/group_workspaces/cems2/fiduceo/Users/gholl/scratch/accidentally_deleted_shift_log 
Các vấn đề liên quan