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.
Not: Geçersiz ve erişimde sorun çıkarttığını düşündüğüm kodlamalarda OSError exception dan yararlanabiliriz.
exception os.error
İşletim sistemi bağımlık adını gösterir. Çıktıları şunlardır. 'posix', 'nt', 'os2', 'ce', 'java', 'riscos'.
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.
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 {'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.
İşletim sistemi üzerinde aktif pathe konumlanmamızı sağlar bir nevi konsolda yaptığımız cd komutunu tekrarlar.
#!/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 )
Çalışılan klasörü gösterir.
Süreci kontrol eden terminal için karşılık gelen dosya adını döndürür.
Kullanabilirlik: Unix
os.ctermid() '/dev/tty'
Geçerli sürecin etkin grup kimliğini döndürür.
Kullanabilirlik: Unix
Geçerli işlemin etkin kullanıcı kimliğini döndürür.
Kullanabilirlik: Unix
Çalışan işlemin gerçek grup kimliğini döndürür.
Kullanabilirlik: Unix
Geçerli işlemle ilişkili tamamlayıcı grup kimlikleri listesini döndürür.
Kullanabilirlik: Unix
os.getgroups() [24, 25, 29, 30, 44, 46, 103, 1000]
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]
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
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.
İş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
Şu anki süreç grup kimliğini döndürür.
Kullanabilirlik: Unix
Şu anki süreç kimliğini döndürür.
Kullanabilirlik: Unix
Ebevynin 'parent' süreç kimliğini döndürür.
Kullanabilirlik: Unix
Geçerli sürecin gerçek, belirten bir tanımlama grubu (ruid, euid, suid) verilerini döndürür.
Kullanabilirlik: Unix
Geçerli sürecin (rgid, egid, sgid) gerçek, efektif, ve kayıtlı grup kimliklerini döndürür.
Kullanabilirlik: Unix
Geçerli işlemin gerçek kullanıcı kimliğini döndürür.
Kullanabilirlik: Unix
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
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
Geçerli işlemin etkin grup kimliği tanımlanır.
Kullanabilirlik: Unix
Geçerli işlemin etkin kullanıcı kimliğini belirler.
Kullanabilirlik: Unix
Geçerli sürecin grup kimliğini belirler.
Kullanabilirlik: Unix
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.
Sistem çağrısı setpgrp () veya setpgrp (0, 0) () sürüme bağlı olarak (varsa) uygulanır
Kullanabilirlik: Unix
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
Geçerli işlemin gerçek ve etkin grup kimliği ayarlar.
Kullanabilirlik: Unix
Geçerli işlemin gerçek, etkin ve kayıtlı grup kodlarına ayarlar.
Kullanabilirlik: Unix
Geçerli işlemin gerçek, etkin ve kayıtlı kullanıcı kimliklerini set eder.
Kullanabilirlik: Unix
Geçerli işlemin gerçek ve etkin kullanıcı kimliklerini set eder.
Kullanabilirlik: Unix
Sistem çağrısı getsid() çağırır.
Kullanabilirlik: Unix
Sistem çağrısı setsid() çağırır.
Kullanabilirlik: Unix
Geçerli işlemin kullanıcı kimliğini belirler.
Kullanabilirlik: Unix
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
Sayısal geçerli izin maskesini ayarlamak ve önceki izin maskesini döndürür.
Kullanabilirlik: Unix, Windows
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
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
Geçerli işletim sistemini tanımlayan bir 5-başlık içeren bilgileri döndürür.
Kullanabilirlik: Unix
('Linux', 'husonet', '3.16-2-amd64', '#1 SMP Debian 3.16.3-2 (2014-09-20)', 'x86_64')
Environment değişkenlerini unset yani silme işlemi yapar
Kullanabilirlik: Unix, Windows
#!/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ı!!"
Yorumlar