Mengendalikan Paths

Posted on June 19th, 2024
Intermediate
...

Python dapat merubah struktur folder dan mengendalikan beberapa file system dalam OS sendiri. Operating System (OS) adalah lingkungan kerja yang dapat berinteraksi dengan perangkat keras, contohnya Windows dan Linux

Contoh direktori di Windows

C:\Users\Ronald

Contoh direktori di Linux

/home/Ronald

Di modul kali ini saya menggunakan Windows sebagai OS.

Python memiliki dua modul bawaan untuk memanipulasi path : os dan pathlib

OS

Silahkan import modul os dahulu

>>> import os

Mendapatkan informasi path sekarang

>>> os.getcwd()
'D:\\Documents\\belajar paths'

Ubah path sekarang ke tempat lain

>>> os.chdir('D:\Kaspersky')
>>> os.getcwd()
'D:\\Kaspersky'

Membangun path file sendiri, berguna ketika menjalankan program di OS berbeda. Contoh penggunaan di Windows

>>> path = os.path.join('folder', 'subfolder', 'file.txt')
>>> path
‘folder\\subfolder\\file.txt’

Contoh penggunaan di Linux / Mac

>>> path = os.path.join('folder', 'subfolder', 'file.txt')
>>> path
‘folder/subfolder/file.txt’

Perhatikan backslash (/) yang digunakan berbeda, Windows menggunakan (\) sedangkan Linux / Mac menggunakan (/)

Membuat folder baru

>>> os.mkdir('new_directory')

Melihat daftar directory di path yang aktif sekarang

import os
path = os.getcwd()
for dirs in os.listdir(path):
   print(f'Directory: {dirs}')

Pathlib

Pathlib merupakan modul yang dibawa Python versi 3.4. Membantu efisiensi dalam pemrogaman paths.

Silahkan import modul pathlib dahulu

>>> import pathlib

Mendapatkan informasi path sekarang

>>> pathlib.Path.cwd()
WindowsPath('D:/Documents/belajar paths')

Perhatikan hasil diatas. Hasil dari pathlib.Path.cwd() lebih mendetail dibanding os.getcwd()

Ubah path sekarang ke tempat lain

>>> os.chdir('D:\Kaspersky')
>>> pathlib.Path.cwd()
WindowsPath('D:/Kaspersky')

Membangun path file sendiri

>>> path = pathlib.Path('folder')/'subfolder'/'file.txt'
>>> path
WindowsPath('folder/subfolder/file.txt')

Membuat folder baru

>>> cwd = pathlib.Path.cwd()
>>> (cwd/'new_directory').mkdir()

Melihat daftar directory di path yang aktif sekarang

from pathlib import Path
path = Path.cwd()
for directory in path.iterdir():
   print(directory)

Absolute Paths dan Relative Paths

Ada 2 cara untuk menjelaskan letak file yang akan di panggil:

  • Absolute Paths memulai pemanggilan file lewat root folder (parent ke child)
  • Relative Paths memulai pemanggilan file lewat folder yang aktif bekerja sekarang secara relative

Tanda seperti '.' dan '..' merupakan pemanggilan dari relative paths. '.' atau dot merupakan tanda folder yang aktif sekarang dan '..' atau double dot merupakan tanda folder sebelumnya.

Cek sebuah folder apakah absolute paths atau relative path dengan os dan pathlib

menggunakan os.path di Linux

>>> import os
>>> os.path.isabs('/')
True
>>> os.path.isabs('..')
False

menggunakan pathlib di Linux

>>> from pathlib import Path
>>> Path('/').is_absolute()
True
>>> Path('..').is_absolute()
False

Anda juga bisa melihat path apa yang dipanggil lewat tanda relative paths dan di ekstrak ke absolute paths

menggunakan os.path di Linux

>>> import os
>>> os.getcwd()
'/home/askus'
>>> os.path.abspath('..')
'/home'

menggunakan pathlib di Linux

>>> from pathlib import Path
>>> print(Path.cwd())
/home/askus
>>> print(Path('..').resolve())
/home

Relative paths akan memudahkan developer dalam pemanggilan path file yang diinginkan didalam program yang berjalan.