OS modülü kullanımı

merhaba arkadaşlar
bu konuda sizlere os modülünün kullanımını anlatacağım. Fakat os modülü ve işe yarar önce onu öğrenmeliyiz. Os modülü sizin işletim sisteminizin hizmetlerini python dosyanızda kullanabilmenizi sağlar. Eğer bilgisayarınızın bazı özelliklerini öğrenmek ve kullanmak istiyorsanız bu modül işinize yarar. Ben burada size fonksiyon fonksiyon tek tek anlatacağım. Fakat önce bir os modülünün fonksiyonlarını bir listeleyelim.

python
import os
dir(os)

diyerek os modülünün fonksiyonlarını listeleyelim.
bende şu çıktıyı verdi :


evet tabi ki biz bunların hepsini görmeyeceğiz. Şimdi os modülünün hangi path içinde olduğunu öğrenelim

python
import os
os.__file__

çıktı :

C:\\Python39\\lib\\os.py

evet şimdi fonksiyonları görebiliriz

"name" fonksiyonu
bu fonksiyon sizin işletim sisteminizi tespit etmenize yarar. siz şu komutu verdiğinizde

os.name

eğer windows iseniz nt linux iseniz posix mac iseniz… aslında bilmiyorum ben hayatım boyunca hiç mac kullanmadım. peki siz bunu ne için kullanacaksınız. mesela bir program yaptınız. linuxta çalışıyor windows’ta bocalıyor o zaman bunu kullanabilirsiniz
örneğin :

import os
if(os.name == 'nt'):
   print('bu yazılım windowsta çalışmaz')
elif(os.name == 'posix'):
   pass

çıktı :

bu yazılım windowsta çalışmaz(windows kullanıyorum)

system fonksiyonu
evet sonraki fonksiyonumuz. bu fonksiyon linuxta terminale windowsta cmdye komut vermeye yarar.
mesela linuxta sizin sevdiğiniz bir araç olsun güzel ama kullanımı çok zor. mesela nmap ve siz bununla port taraması yapan program yazacaksınız. o zaman bu system fonksiyonu çok işe yarar
örnek kod :

import os
cevap =  input('ip adresi veya domain girin : ')
os.system('nmap '+cevap)

çıktı :

ip adresi veya domain girin : www.pythondersleri.com
(port taraması. bilgisayarımda nmap yok ta :) )

listdir fonksiyonu
listdir fonksiyonu bulunduğunuz dizindeki dosyaları listeler eğer cmd üzerinden python yazıp denediyseniz cmdye python yazmadan önce hangi dizinde iseniz o dizindeki dosyaları listeler.eğer bir py dosyasında kullandıysanız o dosyayı cmdden çalıştırırken hangi dizin üzerinden yaptıysanız o dizine tarama yapar. fakat eğer ki siz o listdir’e arguman olarak bir dizin verirseniz o dizine tarama yapar
örnek kod :

#linux ls komutu
import os # konumuz
import sys # arguman almak için kullandım sonra bununla ilgili konu da açacağım
cevap = sys.argv[1]
if(cevap == ''):
   dosyalar = os.listdir()
else:
    dosyalar = os.listdir(cevap)
i = 0
for dosya in dosyalar
    i += 1
    print(f'dosya {i} : {dosya}')

getcwd fonksiyonu
getcwd fonksiyonu os modülü ile şuan hangi dizinde olduğunuzu gösterir C:\Users\ klasörü yazıyorsa sadece C:\Users\ klasöründeki dosyaları görüntülersiniz. sadece o klasöre işlem yaparsınız örnek kod:

# pwd 2.0
import os
print(str(os.getcwd()))

chdir fonksiyonu
bu fonksiyon da bir dizinden başka bir dizine geçmeye yarar. Aynı cmddeki cd komutu gibi.
örneğin :

python
import os
os.getcwd()
os.chdir('C:/Users/')
os.getcwd()

çıktı :

mkdir fonksiyonu
mkdir fonksiyonu sizin bir klasör oluşturmanıza yarar fakat eğer klasör varsa hata verir.
örnek kod :

# klasör oluşturucu
import os
yolu = input('klasörün oluşturulacağı dizin : ')
adı = input('klasörün adı : ')
try:
   os.mkdir()
except: 
   print('öyle bir klasör var başka bir ad veya yol girin')

rename fonksiyonu

rename fonksiyonu adı üstünde dosyaları yeniden adlandırır. bu fonksiyon iki arguman alır. dosyanın adı ve yeni adı mesela masaüstünde bir klasör oluşturun sonra cmd üzerinden o klasöre gelin. şimdi onun içinde de bir dizin oluşturun ve şimdi cmdye python yazın ve kodlar :

import os
os.listdir()
os.rename('kendi_dosyanız', 'yeni_adı')
os.listdir()

çıktı :

stat fonksiyonu
stat fonksiyonu bir dosyanın bilgilerini öğrenmemizi sağlar.

python
import os 
os.stat('dosyanız')

çıktı :

evet arkadaşlar bu konuluk bu kadar.ben bu konuda örnekler ve kodlar için windows 10 üzerinden python 3.9.0 ile kodlarımı yazdım.sizin işleim sisteminiz veya python sürümünüz farklı ise kodlar çalışmayabilir. not : bu konu temel seviye python bilenler için hazırlanmıştır
görüşmek üzere

3 Beğeni

Merhaba paylaşım için teşekkürler,
os.system() kullanırken girdi(input) kullanımına dikkat etmek gerekir. Örneğin kullanıcı argüman olarak (hatayla ya da sisteme zarar vermek için)
192.168.2.1 ; mv file.txt new_file.txt
şeklinde argüman verirse sizin dosyanızın ismini değiştirebilir. Farklı bir durum ise rm komutunu kullanmasıdır bu ise sistemdeki dosyalarınızı silebileceği anlamına gelmektedir(İzinler yeterli ise) Bu durumları önlemek için shlex kütüphanesi kullanılabilr (bu kütüphane hakkında pek bilgim yok) ya da subprocess modülü ile komutlar liste şeklinde verilebilir

2 Beğeni

ee peki bunun konumla ne alakası var

os.system() kullanırken dikkat edilmesi gerektiğini düşünüp bilgi vermek istedim

Eyw hocam.guzel paylaşim.

bana mı söylediniz acaba

1 Beğeni

bu arada random modülü ile ilgili bir konum daha var o konu belki işinize yarar :

Tab2 hicam .d biye boyle duaundunuz ki?