Saya perlu mengekstrak nama direktori induk dari jalur tertentu. Seperti inilah tampilannya:
c:\stuff\directory_i_need\subdir\file
Saya memodifikasi konten "file" dengan sesuatu yang menggunakan directory_i_need
nama di dalamnya (bukan path). Saya telah membuat fungsi yang akan memberi saya daftar semua file, dan kemudian ...
for path in file_list:
#directory_name = os.path.dirname(path) # this is not what I need, that's why it is commented
directories, files = path.split('\\')
line_replace_add_directory = line_replace + directories
# this is what I want to add in the text, with the directory name at the end
# of the line.
Bagaimana saya bisa melakukan itu?
Jawaban:
Dan Anda dapat terus melakukan ini sebanyak yang diperlukan ...
Sunting: dari os.path , Anda dapat menggunakan os.path.split atau os.path.basename:
sumber
Dalam Python 3.4 Anda dapat menggunakan modul pathlib :
sumber
Yang Anda butuhkan hanyalah
parent
bagian jika Anda menggunakannyapathlib
.Akan menghasilkan:
Jika Anda membutuhkan semua bagian (sudah tercakup dalam jawaban lain) gunakan
parts
:Maka Anda akan mendapatkan daftar:
Menghemat nada waktu.
sumber
Pertama, lihat apakah Anda memiliki
splitunc()
fungsi yang tersedia di dalamnyaos.path
. Item pertama yang dikembalikan harus seperti yang Anda inginkan ... tapi saya di Linux dan saya tidak memiliki fungsi ini ketika saya mengimporos
dan mencoba menggunakannya.Kalau tidak, salah satu cara semi-jelek yang menyelesaikan pekerjaan adalah dengan menggunakan:
yang menunjukkan pengambilan direktori tepat di atas file, dan direktori tepat di atas itu.
sumber
Inilah yang saya lakukan untuk mengekstrak bagian dari direktori:
Terima kasih untuk bantuannya.
sumber
Ini juga harus melakukan trik.
sumber
Anda harus meletakkan seluruh path sebagai parameter ke os.path.split. Lihat Dokumen . Itu tidak bekerja seperti string split.
sumber