Hai pertama-tama Anda harus memahami fungsi os.path.abspath (path) dan os.path.relpath (path)
Singkatnya os.path.abspath (path) membuat jalur relatif ke jalur absolut . Dan jika jalur yang disediakan itu sendiri merupakan jalur absolut maka fungsinya mengembalikan jalur yang sama.
sama os.path.relpath (path) membuat path absolut ke path relatif . Dan jika jalur yang disediakan itu sendiri merupakan jalur relatif maka fungsinya mengembalikan jalur yang sama.
Contoh di bawah ini memungkinkan Anda memahami konsep di atas dengan benar :
misalkan saya punya file input_file_list.txt yang berisi daftar file input yang akan diproses oleh skrip python saya.
D: \ conc \ input1.dic
D: \ conc \ input2.dic
D: \ Copyioconc \ input_file_list.txt
Jika Anda melihat struktur folder di atas, input_file_list.txt ada di folder Copyofconc dan file yang akan diproses oleh skrip python ada di folder conc
Tetapi isi file input_file_list.txt adalah seperti yang ditunjukkan di bawah ini:
.. \ conc \ input1.dic
.. \ conc \ input2.dic
Dan skrip python saya hadir di D: drive.
Dan jalur relatif yang disediakan dalam file input_file_list.txt relatif terhadap jalur file input_file_list.txt .
Jadi ketika skrip python akan mengeksekusi direktori kerja saat ini (gunakan os.getcwd () untuk mendapatkan path)
Karena jalur relatif saya relatif ke input_file_list.txt , yaitu "D: \ Copyofconc" , saya harus mengubah direktori kerja saat ini menjadi "D: \ Copyofconc" .
Jadi saya harus menggunakan os.chdir ('D: \ Copyofconc') , jadi direktori kerja saat ini adalah "D: \ Copyofconc" .
Sekarang untuk mendapatkan file input1.dic dan input2.dic , saya akan membaca baris ".. \ conc \ input1.dic" maka akan menggunakan perintah
input1_path = os.path.abspath ('.. \ conc \ input1.dic') (untuk mengubah path relatif ke path absolut. Di sini sebagai direktori kerja saat ini adalah "D: \ Copyofconc", file ". \ conc \ input1. dic "harus diakses relatif ke" D: \ Copyofconc ")
jadi input1_path akan menjadi "D: \ conc \ input1.dic"