makaleler / Python Kütüphaneleri / Python Os Modülü.

Python Os Modülü.

02.12.2014 18:31:47

Python için çeşitli işletim sistemi arabirimleri

import os bu modül işletim sistemi bağımlılıklarında işlevselliği arttırmak için taşınabilir bir yol sunar. Eğer sadece okuma / yazma yapmak istiyorsanız open() fonksiyonlarına, path işlemleri için os.path modülüne ve tüm dosyaları komut satırında tüm satırları görmek istiyorsanız fileinput modülüne bakınız. Geçici dosya ve dizinlerle ilgili işlemler görmek ve geçici modül oluşturmak ve üst düzey dosya ve dizin taşıma işlemleri için shutil modülüne bakabilirsiniz.


İşlevler kullanılabilirliği ile ilgili notlar:
  • Python kullanılabilir olan dahili tüm işletim sistemi işlevlerini kullanabilir. Aynı arayüzü kullanan örneğin işlev os.stat(path) aynı formatta yol hakkında bilgi döndürür.
  • Belirli bir işletim sistemine özgü objeleri da os modülü ile kullanılabilir, fakat bunları kullanarak kodun taşınabilirliği noktasında sıkıntı oluşturur.
  • "Kullanabilirlik: Unix" notu işlevin Unix sistemlerinde yaygın uygulanabileceğini belirtir. Belirli bir işletim sistemi için kullanılabileceğini iddia etmez.
  • "Kullanabilirlik: Unix" notlarımız çekirdeği unix olan sistemleri belirtir. Örneğin MAC Os x unix çekirdeği kullanır.

Not: Geçersiz ve erişimde sorun çıkarttığını düşündüğüm kodlamalarda OSError exception dan yararlanabiliriz.
exception os.error


os.name

İşletim sistemi bağımlık adını gösterir. Çıktıları şunlardır. 'posix', 'nt', 'os2', 'ce', 'java', 'riscos'.


Ayrıca aşağıdaki modüllere bakabilirsiniz

sys.platform platform bilgisi verir, os.uname() işletim sistemi hakkında bilgi verir.
platform modülü sistem kimlik için ayrıntılı denetim sağlar.


İşlem Parametreleri

Aşağıda bahsedeceğimiz fonksiyonlar ve veri öğeleri kullanıcı için bilgi sağlamak ve sürecin akışı için kullanılabilir.


os.environ
Dize halinde bütün sistem parametrelerinin map ini gösterir.
Örnek çıktı.
os.environ
{'XTERM_SHELL': '/bin/bash', 'HUSHLOGIN': 'FALSE', 'LOGNAME': 'huso', 'USER': 'huso', 'PATH': '/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games', 'XDG_VTNR': '1', 'HOME': '/home/huso', 'WINDOWPATH': '1', 'SSH_AGENT_PID': '1081', 'LANG': 'en_US.UTF-8', 'TERM': 'xterm', 'SHELL': '/bin/bash', 'XAUTHORITY': '/home/huso/.Xauthority', 'LANGUAGE': 'en_US:en', 'SHLVL': '2', 'DISPLAY': ':0', 'WINDOWID': '20971535', 'XDG_RUNTIME_DIR': '/run/user/1000', 'XTERM_VERSION': 'XTerm(312)', 'SSH_AUTH_SOCK': '/tmp/ssh-3zJ2cVdTUDYB/agent.1051', 'XTERM_LOCALE': 'en_US.UTF-8', 'XDG_SESSION_ID': '1', 'DBUS_SESSION_BUS_ADDRESS': 'unix:abstract=/tmp/dbus-KTsAEEOcq0,guid=7f0303c1d9afd87a7c666fd3547eb8ca', '_': '/usr/bin/ipython', 'PWD': '/home/huso', 'MAIL': '/var/mail/huso', 'LS_COLORS': 'rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:', 'XDG_SEAT': 'seat0'}

Erişim için getenv fonksiyonundan yararlanabilirsiniz.


os.getenv("HOME")
'/home/huso'

Eğer işletim sistemi platformunuz çevre ortamı bilgilerini değişmesini destekliyor ise putenv() fonksiyonunu kullanabilirsiniz. Mapi otomatik olarak düzenlemiş olacaktır.

Not:putenv() fonksiyonu doğrudan çağrıldığında os.environ değişmez.

Not: FreeBSD ve Mac OS X gibi bazı platformlarda environ bellek sızıntılarına neden olabilir.

Platformunuz unsetenv() işlevini destekliyorsa, bu eşleştirme ile unset ortam değişkenleri için öğeler silebilirsiniz. unsetenv() otomatik olarak çağrıldığında bir item, os.environ ve pop() veya clear() yöntemleri çağrıldığında silinir.


os.chdir(path)

İşletim sistemi üzerinde aktif pathe konumlanmamızı sağlar bir nevi konsolda yaptığımız cd komutunu tekrarlar.


os.fchdir(fd)
Örnek kullanımı aşağıdaki şekildedir.
#!/usr/bin/python

import os, sys

# ilk olarak /home/www/
os.chdir("/home/www/" )

# Ekrana aktif klasörü yazalım
print "Calisma yapilan klasör : %s" % os.getcwd()

# şimdi yeni klasörümüze geçelim "/tmp"
fd = os.open( "/tmp", os.O_RDONLY )

# os.fchdir() methodumuz ile klasörümüze geçelim
os.fchdir(fd)

# Çalışma klasörümüzü ekrana basalım.
print "Calisma yapilan klasör : %s" % os.getcwd()

# Açık olan klasörümüzü kapatalım.
os.close( fd )

os.getcwd()

Çalışılan klasörü gösterir.


os.ctermid()

Süreci kontrol eden terminal için karşılık gelen dosya adını döndürür.
Kullanabilirlik: Unix


Örnek çıktı
os.ctermid()
'/dev/tty'

os.getegid()

Geçerli sürecin etkin grup kimliğini döndürür.
Kullanabilirlik: Unix


os.geteuid()

Geçerli işlemin etkin kullanıcı kimliğini döndürür.
Kullanabilirlik: Unix


os.getgid()

Çalışan işlemin gerçek grup kimliğini döndürür.
Kullanabilirlik: Unix


os.getgroups()

Geçerli işlemle ilişkili tamamlayıcı grup kimlikleri listesini döndürür.
Kullanabilirlik: Unix


Örnek çıktı
os.getgroups()
[24, 25, 29, 30, 44, 46, 103, 1000]

Not: MAC OS x üzerinde getgroups() diğer unix platformlarından farklı davranabilir.
os.initgroups(username, gid)

Sistem initgroups() ile belirtilen kullanıcı adı üye ve belirtilen grup kimliği olduğu tüm grupların Grup erişim listesinde arar.
Kullanabilirlik: Unix

Not: Bu methotda bug mevcuttur. http://bugs.python.org/issue7333 [bugs.python.org]
Çözümü: https://gist.github.com/clayg/1755433 [gist.github.com] - https://bitbucket.org/ianb/pastescript/pull-request/3/fix-group-permissions-for-pastescriptserve/diff [bitbucket.org]


os.getlogin()

Süreci kontrol eden terminalde giriş yapan kullanıcı adını döndürür. Çoğu zaman kullanıcı kim olduğunu öğrenmek için ortam değişkeni LOGNAME kullanmak daha yararlıdır ayrıca işlemin gerçek giriş adını görmek için pwd.getpwuid(os.getuid()) kullanılmalıdır.
Kullanabilirlik: Unix


Root kullanıcısı ile giriş yapılan çıktılar.
import pwd
import os
print pwd.getpwuid(os.getuid())[0]
# root çıktısını verir
print os.getlogin()
# normal kullanıcı adının çıktısını verir.

os.getpgid(pid)

İşlem ile sürecin süreç grup kimliğini döndürür PID. PID 0 ise, çalışan sürecin süreç grup kimliği döner.
Kullanabilirlik: Unix


os.getpgrp()

Şu anki süreç grup kimliğini döndürür.
Kullanabilirlik: Unix


os.getpid()

Şu anki süreç kimliğini döndürür.
Kullanabilirlik: Unix


os.getppid()

Ebevynin 'parent' süreç kimliğini döndürür.
Kullanabilirlik: Unix


os.getresuid()

Geçerli sürecin gerçek, belirten bir tanımlama grubu (ruid, euid, suid) verilerini döndürür.
Kullanabilirlik: Unix


os.getresgid()

Geçerli sürecin (rgid, egid, sgid) gerçek, efektif, ve kayıtlı grup kimliklerini döndürür.
Kullanabilirlik: Unix


os.getuid()

Geçerli işlemin gerçek kullanıcı kimliğini döndürür.
Kullanabilirlik: Unix


os.getenv(varname)

Eğer varsa Değişkenadı çevre değişken değeri veya değeri döndürür. None değeri varsayılan.
Kullanabilirlik: Unix, Windows


os.putenv(varname, value)

Değişken dize değeri adı yada adında ortam değişkenlerini ayarlar. Bu tür değişiklikleri çevreye 'environment' os.system(), popen() veya fork() ve execv() ile başlayan subprocesses etkiler.
Kullanabilirlik: Unix, Windows


os.setegid(egid)

Geçerli işlemin etkin grup kimliği tanımlanır.
Kullanabilirlik: Unix


os.seteuid(euid)

Geçerli işlemin etkin kullanıcı kimliğini belirler.
Kullanabilirlik: Unix


os.setgid(gid)

Geçerli sürecin grup kimliğini belirler.
Kullanabilirlik: Unix


os.setgroups(groups)

Sürecin gruplarıyla ilişkili tamamlayıcı grup kimliklerinin listesi ayarlar. Gruplar bir dizi olmalıdır, e her öğe bir grubu tanımlayan bir tamsayı olması gerekir. Bu işlem genellikle sadece root için kullanılabilir.
Kullanabilirlik: Unix

Not: Mac OS X, işetim sistemi tarafından tanımlanan etkin grup kimlikleri, genellikle en fazla 16 uzunluğunu aşamaz. getgroups() ve setgroups() fonksiyonları aynı grup listesi döndürmeyebilir.


os.setpgrp()

Sistem çağrısı setpgrp () veya setpgrp (0, 0) () sürüme bağlı olarak (varsa) uygulanır
Kullanabilirlik: Unix


os.setpgid(pid, pgrp)

Kimlikli süreci süreç grup kimliği ayarlamak için sistem çağrısı setpgid() ara PID numarası pgrp ile işlem grubuna set eder.
Kullanabilirlik: Unix


os.setregid(rgid, egid)

Geçerli işlemin gerçek ve etkin grup kimliği ayarlar.
Kullanabilirlik: Unix


os.setresgid(rgid, egid, sgid)

Geçerli işlemin gerçek, etkin ve kayıtlı grup kodlarına ayarlar.
Kullanabilirlik: Unix


os.setresuid(ruid, euid, suid)

Geçerli işlemin gerçek, etkin ve kayıtlı kullanıcı kimliklerini set eder.
Kullanabilirlik: Unix


os.setreuid(ruid, euid)

Geçerli işlemin gerçek ve etkin kullanıcı kimliklerini set eder.
Kullanabilirlik: Unix


os.getsid(pid)

Sistem çağrısı getsid() çağırır.
Kullanabilirlik: Unix


os.setsid()

Sistem çağrısı setsid() çağırır.
Kullanabilirlik: Unix


os.setuid(uid)

Geçerli işlemin kullanıcı kimliğini belirler.
Kullanabilirlik: Unix


os.strerror(code)

Hata koduna karşılık gelen hata iletisi döndürür. Strerror() bilinmeyen hata numarası verildiğinde NULL döndüğü platformlarında, ValueError ortaya çıkar.
Kullanabilirlik: Unix, Windows


os.umask(mask)

Sayısal geçerli izin maskesini ayarlamak ve önceki izin maskesini döndürür.
Kullanabilirlik: Unix, Windows


Kullanım Örnekleri 1
import os
oldmask = os.umask (022)
fh1 = os.open ("qq1.junk", os.O_CREAT, 0777)
fh2 = os.open ("qq2.junk", os.O_CREAT, 0022)
os.umask (oldmask)
os.close (fh1)
os.close (fh2)
-rwxr-xr-x 1 pax pax 0 Apr 24 11:11 qq1.junk
---------- 1 pax pax 0 Apr 24 11:11 qq2.junk

Kullanım Örnekleri 2
import os
oldmask = os.umask (022)
fh3 = open ("qq3.junk", "w")
os.umask (0)
fh4 = open ("qq4.junk", "w")
os.umask (oldmask)
fh3.close()
fh4.close()
-rw-r--r-- 1 pax pax 0 Apr 24 11:44 qq3.junk
-rw-rw-rw- 1 pax pax 0 Apr 24 11:44 qq4.junk

os.uname()

Geçerli işletim sistemini tanımlayan bir 5-başlık içeren bilgileri döndürür.
Kullanabilirlik: Unix


Çıktı örneği
('Linux',
 'husonet',
 '3.16-2-amd64',
 '#1 SMP Debian 3.16.3-2 (2014-09-20)',
 'x86_64')

os.unsetenv(varname)

Environment değişkenlerini unset yani silme işlemi yapar
Kullanabilirlik: Unix, Windows


Dosya oluşturma İşlemleri
Bu işlevler için ve yeni dosya nesneleri oluşturmak için. ( open() fonksiyonun'a bakabilirsiniz! )
os.fdopen(fd[, mode])
Bu method için bir dosya tanıtıcısı bağlı bir açık dosya nesnesi döndürür.
Kullanabilirlik: Unix, Windows
Örnek kullanım.
#!/usr/bin/python

import os, sys

# Dosya açma işelmi
fd = os.open( "foo.txt", os.O_RDWR|os.O_CREAT )

# Dosyamizi açan file nesnemize fdopen methodumuza atayalım.
fo = os.fdopen(fd, "w+")

# Geçerli pointer konumumuz
print " I/O pointer konumu :%d" % fo.tell()

# Bir string yazalım
fo.write( "Python harika bir dildir.
Evet bu harika!
");

# Dosyanın başından itibaren okuyalım
os.lseek(fd, 0, 0)
str = os.read(fd, 100)
print "Okunan String : ", str

# Geçerli pointer konumumuz
print "I/O pointer konumu :%d" % fo.tell()

# Açık olan file kapatalım
fo.close()

print "Dosya kapatma başarılı!!"


Devam edecek...
yazar husonet

Yorumlar

Bu içerik için sizde yorum yapabilirsiniz!
anasayfa | makaleler | haberler | dosyalar | linkler | hakkımızda