OS Modülü ile Dosya İşleme

Tarafından döndürülen File nesnesine ek olarak open()dosya IO işlemleri Python'un yerleşik kitaplığı kullanılarak da gerçekleştirilebilir ve işletim sistemine bağlı yararlı işlevler sağlayan os modülü bulunur. Bu işlevler, dosya üzerinde düşük seviyeli okuma / yazma işlemleri gerçekleştirir.

open()os modülündeki işlev yerleşik open () işlevine benzer. Ancak, bir dosya nesnesi değil, bir dosya tanımlayıcısı, açılan dosyaya karşılık gelen benzersiz bir tamsayı döndürür. Dosya tanımlayıcısının değerleri 0, 1 ve 2, stdin, stdout ve stderr akışlarını temsil eder. Diğer dosyalara 2'den itibaren artımlı dosya tanımlayıcı verilecektir.

Durumunda olduğu gibi open() yerleşik işlev, os.open()işlevinin dosya erişim modunu da belirtmesi gerekir. Aşağıdaki tablo, os modülünde tanımlanan çeşitli modları listeler.

Sr.No. Os Modülü ve Açıklama
1

os.O_RDONLY

Sadece okumak için aç

2

os.O_WRONLY

Sadece yazmak için aç

3

os.O_RDWR

Okumak ve yazmak için aç

4

os.O_NONBLOCK

Açıkta engelleme

5

os.O_APPEND

Her yazıma ekle

6

os.O_CREAT

Dosya yoksa oluşturun

7

os.O_TRUNC

Boyutu 0 olarak kısalt

8

os.O_EXCL

Oluştur ve dosya varsa hata

İçine veri yazmak üzere yeni bir dosya açmak için şunu belirtin: O_WRONLY Hem de O_CREATboru (|) operatörü ekleyerek modlar. Os.open () işlevi bir dosya tanımlayıcısı döndürür.

f=os.open("test.dat", os.O_WRONLY|os.O_CREAT)

Verilerin disk dosyasına bayt dizesi şeklinde yazıldığını unutmayın. Dolayısıyla, normal bir dizge daha önce olduğu gibi encode () işlevi kullanılarak bayt dizesine dönüştürülür.

data="Hello World".encode('utf-8')

Os modülündeki write () işlevi bu bayt dizesini ve dosya tanımlayıcısını kabul eder.

os.write(f,data)

Close () işlevini kullanarak dosyayı kapatmayı unutmayın.

os.close(f)

Os.read () işlevini kullanarak bir dosyanın içeriğini okumak için aşağıdaki ifadeleri kullanın:

f=os.open("test.dat", os.O_RDONLY)
data=os.read(f,20)
print (data.decode('utf-8'))

Os.read () işlevinin dosya tanımlayıcıya ve okunacak bayt sayısına (bayt dizesinin uzunluğu) ihtiyacı olduğunu unutmayın.

Eşzamanlı okuma / yazma işlemleri için bir dosya açmak istiyorsanız, O_RDWR modunu kullanın. Aşağıdaki tablo, işletim sistemi modülündeki önemli dosya işlemleriyle ilgili işlevleri göstermektedir.

Sr.No Fonksiyonlar ve Açıklama
1

os.close(fd)

Dosya tanımlayıcısını kapatın.

2

os.open(file, flags[, mode])

Dosyayı açın ve bayraklara ve muhtemelen moduna göre kipine göre çeşitli bayraklar ayarlayın.

3

os.read(fd, n)

Fd dosya tanımlayıcısından en çok n bayt okuyun. Okunan baytları içeren bir dize döndürür. Fd ile başvurulan dosyanın sonuna ulaşılmışsa, boş bir dizge döndürülür.

4

os.write(fd, str)

Str dizesini fd dosya tanımlayıcısına yazın. Gerçekte yazılan bayt sayısını döndür.