Python - İleri Seviye Python

Dosya ve Klasör Modülleri

Yayın tarihi :01-Ara-21

Bilindiği gibi işletim sistemlerinin çalışma mantığı birbirinden farklıdır. Örneğin Windows işletim sisteminde klasör içersine girebilmek için "dir" komutu kullanılırken Linux işletim sistemlerinde "ls" komutunu kullanırız. Başka bir örnek olarak Windows işletim sistemlerinde dizin ayracı olarak "\" işareti kullanılırken Linux işletim sisteminde "/" işareti ayraç olarak kullanılır. 

Bizde bu dersimizde bu gibi farklı kullanımları ortadan kaldırmak için os modülünü kullancağız. Modüle geçmeden önce eğer Python kod yazmada arayüz olarak Jupyter Notebook kullanıyorsanız göstermek istediğim herhangi bir modül kullanmadan kullanabileceğiniz 2 tane önemli kod parçacığını göstermek istiyorum. Eğer editör olarak Visual Studio Code, notepad gibi arayüzler kullanıyorsanız göstereceğim 2 kod parçacığı da çalışmayacaktır. 

  1. %ls: Çalışmakta olduğunuz sayfanın kayıtlı olduğu klasörde bulunan dosyaları listelemeye yarar.
    %ls

    Çıktı:

     Volume in drive C has no label.
     Volume Serial Number is 20FD-99A9
    
     Directory of C:\Users\easan\Python\PythonCalismalari
    
    11.12.2021  21:18    <DIR>          .
    11.12.2021  21:18    <DIR>          ..
    11.12.2021  21:06    <DIR>          .ipynb_checkpoints
    11.12.2021  20:47            22.139 class.ipynb
    11.12.2021  21:18             4.507 Dosya ve Klasör Modülleri.ipynb
    07.12.2021  16:45             3.446 Jupyter Notebook Kurulum ve Kullanımlar.ipynb
    04.12.2021  22:05           410.146 Matplotlib.ipynb
    07.12.2021  12:16           606.248 Pandas Visualization.ipynb
    08.12.2021  14:05            60.504 Python.ipynb
    06.12.2021  18:02         3.314.019 Seaborn.ipynb
    06.12.2021  20:50             9.055 tips.csv
    07.12.2021  10:43            61.365 titanic.csv
                   9 File(s)      4.491.429 bytes
                   3 Dir(s)  752.580.976.640 bytes free
  2. %pwd : Çalışmakta olunan sayfanın yolunu göstermek için kullanılır.

    %pwd

    Çıktı:

    'C:\\Users\\easan\\Python\\PythonCalismalari

os Modülü

os modülünü kullanabilmek için ilk olarak ilgili kütüphanenin içe aktarılması gerekmektedir.

import os

Bilmediğiniz bir kütüphanenin/modülün/değişkenin... hangi özellikleri kullandığını görebilmek için print(dir(isim)) yazarak içeriğine göz atabilirsiniz, os modülü için de aynı işlemi uygulayalım. 

print(dir(os))
print(len(dir(os))) #kaç tane özelliği olduğu sayısı

Çıktı:

['DirEntry', 'F_OK', 'MutableMapping', 'O_APPEND', 'O_BINARY', 'O_CREAT', 'O_EXCL', 'O_NOINHERIT', 'O_RANDOM', 'O_RDONLY',
 'O_RDWR', 'O_SEQUENTIAL', 'O_SHORT_LIVED', 'O_TEMPORARY', 'O_TEXT', 'O_TRUNC', 'O_WRONLY', 'P_DETACH', 'P_NOWAIT', 
'P_NOWAITO', 'P_OVERLAY', 'P_WAIT', 'PathLike', 'R_OK', 'SEEK_CUR', 'SEEK_END', 'SEEK_SET', 'TMP_MAX', 'W_OK', 'X_OK',
 '_AddedDllDirectory', '_Environ', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '
__package__', '__spec__', '_check_methods', '_execvpe', '_exists', '_exit', '_fspath', '_get_exports_list', '_putenv', 
'_unsetenv', '_wrap_close', 'abc', 'abort', 'access', 'add_dll_directory', 'altsep', 'chdir', 'chmod', 'close', 'closerange', 
'cpu_count', 'curdir', 'defpath', 'device_encoding', 'devnull', 'dup', 'dup2', 'environ', 'error', 'execl', 'execle', 'execlp',
 'execlpe', 'execv', 'execve', 'execvp', 'execvpe', 'extsep', 'fdopen', 'fsdecode', 'fsencode', 'fspath', 'fstat', 'fsync', 
'ftruncate', 'get_exec_path', 'get_handle_inheritable', 'get_inheritable', 'get_terminal_size', 'getcwd', 'getcwdb', 'getenv',
 'getlogin', 'getpid', 'getppid', 'isatty', 'kill', 'linesep', 'link', 'listdir', 'lseek', 'lstat', 'makedirs', 'mkdir', 'name', 
'open', 'pardir', 'path', 'pathsep', 'pipe', 'popen', 'putenv', 'read', 'readlink', 'remove', 'removedirs', 'rename', 'renames', 
'replace', 'rmdir', 'scandir', 'sep', 'set_handle_inheritable', 'set_inheritable', 'spawnl', 'spawnle', 'spawnv', 'spawnve', 'st',
 'startfile', 'stat', 'stat_result', 'statvfs_result', 'strerror', 'supports_bytes_environ', 'supports_dir_fd', '
supports_effective_ids', 'supports_fd', 'supports_follow_symlinks', 'symlink', 'sys', 'system', 'terminal_size',
 'times', 'times_result', 'truncate', 'umask', 'uname_result', 'unlink', 'urandom', 'utime', 'waitpid', 'walk', 'write'] 
153

os modülünün kullanılabilir 153 tane özelliği bulunmaktadır. Bunlardan önemli olan bir kaç özelliği inceleyelim.

  1. os.name: İşletim sistemi adını öğrenmek için kullanılır. Windows için 'nt' iken MacOS ve GNU/Linux için 'posix' çıktısı elde edilir.
    os.name

    Çıktı:

    'nt'
  2. os.sep: Kullanmış olduğumuz işletim sisteminin ayracının ne olduğunu gösterir.
    os.sep

    Çıktı:

    '\\'
  3. os.getcwd(): Çalışmakta olduğumuz sayfanın yolunu (path) gösterir.
    os.getcwd()

    Çıktı:

    'C:\\Users\\easan\\Python\\PythonCalismalari'
  4. os.chdir(): Bulunduğumuz dizinden başka bir dizin içine gitmemizi sağlar.
    os.chdir("/spark/")
    os.getcwd()

    Çıktı:

    'C:\\spark'
  5. os.listdir(): Çalışmakta olduğunuz sayfanın kayıtlı olduğu klasörde bulunan dosya isimlerini görmeye yarar.
    os.listdir()

    Çıktı:

    ['.ipynb_checkpoints',
     'class.ipynb',
     'Dosya ve Klasör Modülleri.ipynb',
     'Jupyter Notebook Kurulum ve Kullanımlar.ipynb',
     'Matplotlib.ipynb',
     'Pandas Visualization.ipynb',
     'Python.ipynb',
     'Seaborn.ipynb',
     'tips.csv',
     'titanic.csv']
    os.listdir("/spark/") #başka klasörde olan dosyaları görmek için

    Çıktı:

    ['bin',
     'conf',
     'data',
     'examples',
     'jars',
     'kubernetes',
     'LICENSE',
     'licenses',
     'NOTICE',
     'python',
     'R',
     'README.md',
     'RELEASE',
     'sbin',
     'yarn']
  6. os.startfile(): Parantez içerisinde yazılı dosya ismin varsayılan programla açmaya yarar.
    os.startfile("titanic.csv") 
    #Çıktı olarak excel ile titanic.csv dosyasını açar.
    os.startfile("https://enesasan.com")
    #Çıktı olarak ilgili web sitesini açar.
  7. os.mkdir(): Yeni dizin (klasör) oluşturur, eğer aynı dizin adında başka bir dizin varsa hata verir.
    os.mkdir("PythonDersleri")
    #Çıktı olarak PythonDersleri adında yeni klasör oluşturur.
  8. os.makedirs(): Yeni dizin (klasör) oluşturur ama os.mkdir'den farklı olarak eğer dosya yolu verilmişse o dosya yolu üzerinde olmayan klasörleri de oluşturur.
    os.makedirs("/Users/easan/Python/PythonCalismalari/PythonCalismalari2")
    #Çıktı olarak ilgili yolu izler yol üzerinde ilgili klasör yoksa yeni klasör oluşturur.
  9. os.rmdir(): İçerisi boş olan klasörü silme komududur. Silme işleminde onay sormadığından dolayı dikkatli kullanılmasında fayda vardır.
    os.rmdir("PythonCalismalari3/")
    #Çıktı olarak parantez içerisinde bulunan dosya silinecektir.
  10. Dosya oluşturma, okuma ve yazma işlemi: Çalışma yapılan klasör içersinde yeni dosya oluşturmak, okumak veya yazmak için kullanılan komutlardır.
    #os.O_RDONLY - Read Only : Sadece oku
    #os.O_WRONLY - Write Only  Sadece yaz
    #os.O_RDWR - Read and Write - Oku ve yaz
    #os.O_CREAT - Create - Oluştur
    newFile=os.open("newFile.txt",os.O_CREAT | os.O_RDWR) #yeni dosya üret veya oku ve yaz
    os.write(newFile,"arinway.com".encode()) #dosya içine yaz
    os.close(newFile) #dosyayı kapat
    
    newFile=os.open("newFile.txt",os.O_RDONLY) #dosyayı sadece oku
    fileContent=os.read(newFile,5) #okuduğun değeri fileContent'e kaydet. 5 sayısı ilk 5 harfini kaydet
    print(fileContent) #ekrana yazdır.
    os.close(newFile) #dosyayı kapat
    newFile=os.open("newFile2.txt",os.O_CREAT | os.O_RDWR) 
    os.write(newFile,"arinway.com".encode())
    os.close(newFile)
    
    newFile=os.open("newFile2.txt",os.O_RDONLY)
    fileContent=os.read(newFile,os.stat(newFile).st_size) #dosyanın tamamını okumak için
    print(fileContent.decode()) #türkçe karakter sorununu kaldırmak için encode yapılan kayır decode olarak geri çözülür
    os.close(newFile) #dosyayı kapat
  11. os.unlink(): Dosya silmek için kullanılır. (os.rmdir() klasör silmek için kullanılırdı)
    os.unlink("yenidosya.txt")
    #Çıktı olarak ilgili dosya silinir. 
    #Eğer dosya başka bir uygulama tarafından açılmışsa silinme işleminde hata verecektir.
  12. os.rename(), os.replace(): İkisi de dizinin adını değiştirmek için kullanılırlar. os.rename("şuanki adı","yeni adı") veye os.replace("şuanki adı","yeni adı")
    os.rename("PythonCalismalari2","PythonCalismalari3")
    os.replace("PythonCalismalari3","PythonCalismalari4")
  13. os.system(): Parantez içersindeki .exe dosyalarını çalıştırmak için kullanılır.
    os.system("test.exe")
  14. os.path.exists(): Dizin içinde parantez içerisinde bulunan dosya adı var mı diye bakar, varsa True yoksa False döndürür.
    os.path.exists("PythonCalismalari3")

    Çıktı:

    True
Paylaş:

Yorum Yap (*Yorumunuza kod eklemek isterseniz Kod Parçacığı Ekle butonuna tıklayarak ekleyebilirsiniz.)

Yorumlar

Henüz hiç yorum yapılmamış, ilk yorum yapan sen ol.