Merhaba öncelikle os.path.abspath (yol) ve os.path.relpath (yol) işlevlerini anlamalısınız
Kısacası os.path.abspath (yol) bir hale göreli yolu ile mutlak yol . Sağlanan yolun kendisi mutlak bir yolsa, işlev aynı yolu döndürür.
Benzer os.path.relpath (yol) bir hale getirir mutlak yolunu için göreli yolu . Sağlanan yolun kendisi göreceli bir yolsa, işlev aynı yolu döndürür.
Aşağıdaki örnek, yukarıdaki kavramı doğru bir şekilde anlamanıza izin verebilir :
python betiğim tarafından işlenecek girdi dosyalarının listesini içeren bir input_file_list.txt dosyanız olduğunu varsayalım .
D: \ konsantre \ input1.dic
D: \ konsantre \ input2.dic
D: \ Copyioconc \ input_file_list.txt
Yukarıdaki klasör yapısını görürseniz , Copy_conc klasöründe input_file_list.txt dosyası ve python betiği tarafından işlenecek dosyalar conc klasöründe bulunur
Ancak input_file_list.txt dosyasının içeriği aşağıda gösterilmiştir:
.. \ kons \ input1.dic
.. \ kons \ input2.dic
Python betiğim de D: drive'de.
Ve input_file_list.txt dosyasında sağlanan göreli yol input_file_list.txt dosyasının yoluna göredir .
Python betiği geçerli çalışma dizinini yürüttüğünde ( yolu almak için os.getcwd () kullanın)
Benim göreli yolu göreli olduğundan input_file_list.txt , yani : "\ Copyofconc D" i geçerli çalışma dizini değiştirmek zorunda ": \ Copyofconc D" .
Bu yüzden os.chdir ('D: \ Copyofconc') kullanmalıyım , böylece geçerli çalışma dizini "D: \ Copyofconc" olmalıdır .
Şimdi input1.dic ve input2.dic dosyalarını almak için ".. \ conc \ input1.dic" satırlarını okuyacağım ve
input1_path = os.path.abspath ('.. \ conc \ input1.dic') (mutlak yola göreli yolu değiştirmek için. Burada geçerli çalışma dizini "D: \ Copyofconc", ". \ conc \ input1 dosyasıdır. dic "e" D: \ Copyofconc "ile ilgili olarak erişilir)
bu nedenle input1_path "D: \ conc \ input1.dic" olmalıdır