2008-12-22 30 views
33

Tôi có một chuỗi đại diện cho một đường dẫn. Bởi vì ứng dụng này được sử dụng trên Windows, OSX và Linux, chúng tôi đã xác định các biến môi trường để phân loại bản đồ đúng từ các hệ thống tệp khác nhau. Kết quả là:Đánh giá các biến môi trường thành một chuỗi

"$C/test/testing" 

Điều tôi muốn làm là đánh giá các biến môi trường trong chuỗi sao cho chúng được thay thế bằng tên khối lượng tương ứng của chúng. Có một lệnh cụ thể tôi đang thiếu, hoặc tôi phải mất os.environ.keys() và thay thế bằng tay các chuỗi?

Trả lời

60

Sử dụng os.path.expandvars để mở rộng các biến môi trường trong chuỗi, ví dụ:

>>> os.path.expandvars('$C/test/testing') 
'/stackoverflow/test/testing' 
+0

Cảm ơn, tôi đang tìm kiếm dưới sys và các module os, phải đã bỏ lỡ nó trong os.path. – Soviut

+0

Thật đáng tiếc là không có cách nào để thoát khỏi $ để ngăn một số biến được mở rộng. Ví dụ: $ C/test/$$ ACTION hoặc $ C/test/\ $ ACTION để tạo chuỗi '/ stackoverflow/test/$ ACTION –

+3

@JulianMann Nếu bạn định nghĩa 'DOLLARSIGN' làm biến, bạn có thể sử dụng' $ {DOLLARSIGN} 'nơi bạn muốn sử dụng ký hiệu đô la. –

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