Anda harus menggunakan os.pathmodul ( docs.python.org/library/os.path.html ) daripada memanipulasi string secara langsung. Gunakan os.path.joinuntuk menggabungkan komponen jalur.
kennytm
2
terima kasih Tim untuk mengingatkan, setelah membaca dokumen, saya pikir jawaban untuk pertanyaan saya yang sebenarnya adalah os.path.join (folder, nama file) dan saya tidak perlu khawatir tentang garis miring sama sekali.
Sobat
2
Itu sebabnya saya bertanya - jangan lakukan ini sendiri, gunakan os.path.joindan biarkan perpustakaan standar mencari tahu pemisah jalur yang benar.
Tim Pietzcker
2
@ S. Lott Saya tidak akan menganggap ini 'buruk'. pertanyaannya adalah pertanyaan yang valid dengan sendirinya. itu hanya sebagian dari pertanyaan yang lebih besar (bisa dikatakan nyata).
ohho
6
Bergantung pada apa yang Anda lakukan, bagaimanapun, pertanyaan itu mungkin masih menarik. Misalnya, jika Anda menggunakan Python untuk memberikan input ke program lain, Anda mungkin memiliki kasus di mana argumen memerlukan jalur yang diakhiri dengan garis miring. Itu mungkin di luar kendali Anda; dan merupakan kasus penggunaan yang benar-benar valid untuk jawaban Marco di bawah.
Chris Krycho
Jawaban:
180
os.path.join(path, '') akan menambahkan garis miring jika belum ada.
Anda dapat melakukan os.path.join(path, '', '')atau os.path.join(path_with_a_trailing_slash, '')dan Anda masih hanya akan mendapatkan satu garis miring.
os.path.normcase(path)Normalize the case of a pathname.OnUnixandMac OS X, this returns the path unchanged; on case-insensitive filesystems, it converts the path to lowercase.OnWindows, it also converts forward slashes to backward slashes.
Jika tidak, Anda dapat mencari yang lain di halaman ini
os.path
modul ( docs.python.org/library/os.path.html ) daripada memanipulasi string secara langsung. Gunakanos.path.join
untuk menggabungkan komponen jalur.os.path.join
dan biarkan perpustakaan standar mencari tahu pemisah jalur yang benar.Jawaban:
os.path.join(path, '')
akan menambahkan garis miring jika belum ada.Anda dapat melakukan
os.path.join(path, '', '')
atauos.path.join(path_with_a_trailing_slash, '')
dan Anda masih hanya akan mendapatkan satu garis miring.sumber
path
kebetulan menjadi file daripada direktori. Itu sedikit merepotkan.Karena Anda ingin menghubungkan direktori dan nama file, gunakan
Jika Anda ingin menyingkirkan
.\..\..\blah\
jalan, gunakansumber
Anda dapat melakukannya secara manual dengan:
Namun, biasanya jauh lebih bersih untuk digunakan
os.path.join
.sumber
Anda bisa menggunakan sesuatu seperti ini:
Jika tidak, Anda dapat mencari yang lain di halaman ini
sumber