Bagaimana cara mendapatkan pemisah variabel lingkungan PATH dengan Python?


156

Ketika beberapa direktori perlu digabungkan, seperti dalam jalur pencarian yang dapat dieksekusi, ada karakter pemisah yang bergantung pada os. Untuk Windows ';', untuk Linux ':'. Apakah ada cara di Python untuk mendapatkan karakter yang harus dibagi?

Dalam diskusi untuk pertanyaan ini Bagaimana cara mengetahui jalur python saya menggunakan python? , disarankan yang os.sepakan melakukannya. Jawaban itu salah, karena itu adalah pemisah untuk komponen direktori atau nama file dan sama dengan '\\'atau '/'.

Jawaban:


220

219
Jika, seperti saya, Anda tidak membaca isi dari pertanyaan ini dan hanya pergi dengan judul, Anda akan berpikir ini adalah karakter yang memisahkan elemen dari jalur sistem file (garis miring pada Linux dan MacOSX, garis miring terbalik pada Windows). Bukan, itu karakter yang memisahkan elemen dari PATH shell yang digunakan untuk menemukan perintah yang dapat dieksekusi. os.sepatau os.path.sepapa yang Anda butuhkan untuk jalur sistem file.
Perry

71
os.pathsepadalah :atau ;sementara os.path.sepadalah \\ atau /- kadang-kadang nama-nama di Python menyerang saya sebagai mengejutkan buruk dipilih. Itu .membuat perbedaan yang terlalu besar.
ArtOfWarfare

1
@ Jerry saya mengedit pertanyaan. semoga hasil edit saya menghilangkan kebingungan (saya menunjukkan bahwa pertanyaan ini menanyakan tentang "variabel lingkungan PATH" alih-alih "jalur sistem file").
Trevor Boyd Smith

Jadi ada os.sepdan os.path.sep, yang sama, juga os.pathsepdan os.path.pathsepyang juga sama. Mengapa mereka melakukan ini?
BallpointBen


12

Menjadikannya sedikit lebih eksplisit (Untuk pemula python seperti saya)

import os
print(os.pathsep)

4

OK, jadi ada:

  • os.pathsepyaitu ;dan yang merupakan pemisah dalam PATHvariabel lingkungan;
  • os.path.sepyang ada /di Unix / Linux dan \Windows, yang merupakan pemisah antara komponen path.

Kesamaan adalah sumber kebingungan.


Apakah Anda bahkan membaca pertanyaannya? os.path.sepadalah jawaban untuk pertanyaan yang berbeda .
Mark Ransom

Anda benar, terima kasih! Kebingungan saya berasal dari fakta bahwa sebenarnya saya sedang mencari pemisah khusus sistem '\' dan '/' (yaitu os.path.sep) sedangkan halaman ini diusulkan sebagai salah satu hasil pencarian.
DVV

1

Ini adalah jalur sampel untuk direktori kerja / folder spesifik Anda -

 import os
 my = os.path.sep+ "testImages" + os.path.sep + "imageHidden.png"
 print(my)

Output untuk Linux-

/home/*******/Desktop/folder/PlayWithPy/src/testImages/imageHidden.png

Output untuk Windows-

C:\\Users\\Administrator\\Desktop\\folder\\tests\\testImages\\imageHidden.png

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.