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 '/'.

Mark tebusan
sumber

Jawaban:

220

os.pathsep

SilentGhost
sumber
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
32

Itu adalah os.pathsep

Dave Costa
sumber
12

Menjadikannya sedikit lebih eksplisit (Untuk pemula python seperti saya)

import os
print(os.pathsep)
Nerrve
sumber
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.

DVV
sumber
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

Shivam Bharadwaj
sumber