Obsługa plików za pomocą modułu os
Oprócz obiektu File zwróconego przez open()function, operacje we / wy na plikach mogą być również wykonywane przy użyciu wbudowanej biblioteki Pythona z modułem os, który zapewnia przydatne funkcje zależne od systemu operacyjnego. Te funkcje wykonują operacje odczytu / zapisu niskiego poziomu na pliku.
Plik open()funkcja z modułu os jest podobna do wbudowanej funkcji open (). Jednak nie zwraca obiektu pliku, ale deskryptor pliku, unikalną liczbę całkowitą odpowiadającą otwartemu plikowi. Wartości deskryptorów pliku 0, 1 i 2 reprezentują strumienie stdin, stdout i stderr. Inne pliki otrzymają przyrostowy deskryptor pliku od 2 wzwyż.
Jak w przypadku open() wbudowana funkcja, os.open()funkcja musi również określić tryb dostępu do pliku. Poniższa tabela zawiera listę różnych trybów zdefiniowanych w module os.
| Sr.No. | Moduł Os i opis | 
|---|---|
| 1 |   os.O_RDONLY Otwarte tylko do odczytu  |  
      
| 2 |   os.O_WRONLY Otwarte tylko do pisania  |  
      
| 3 |   os.O_RDWR Otwarte do czytania i pisania  |  
      
| 4 |   os.O_NONBLOCK Nie blokuj po otwarciu  |  
      
| 5 |   os.O_APPEND Dołącz do każdego zapisu  |  
      
| 6 |   os.O_CREAT Utwórz plik, jeśli nie istnieje  |  
      
| 7 |   os.O_TRUNC Obetnij rozmiar do 0  |  
      
| 8 |   os.O_EXCL Błąd, jeśli istnieje tworzenie i plik  |  
      
Aby otworzyć nowy plik do zapisywania w nim danych, określ O_WRONLY jak również O_CREATtryby, wstawiając operator potoku (|). Funkcja os.open () zwraca deskryptor pliku.
f=os.open("test.dat", os.O_WRONLY|os.O_CREAT) 
    Zauważ, że dane są zapisywane do pliku dyskowego w postaci ciągu bajtów. W związku z tym zwykły ciąg jest konwertowany na ciąg bajtów za pomocą funkcji encode (), jak wcześniej.
data="Hello World".encode('utf-8') 
    Funkcja write () w module os akceptuje ten ciąg bajtów i deskryptor pliku.
os.write(f,data) 
    Nie zapomnij zamknąć pliku za pomocą funkcji close ().
os.close(f) 
    Aby odczytać zawartość pliku za pomocą funkcji os.read (), użyj następujących instrukcji:
f=os.open("test.dat", os.O_RDONLY)
data=os.read(f,20)
print (data.decode('utf-8')) 
    Zauważ, że funkcja os.read () wymaga deskryptora pliku i liczby bajtów do odczytania (długość ciągu bajtów).
Jeśli chcesz otworzyć plik do jednoczesnych operacji odczytu / zapisu, użyj trybu O_RDWR. Poniższa tabela przedstawia ważne funkcje związane z operacjami na plikach w module systemu operacyjnego.
| Sr.No | Funkcje i opis | 
|---|---|
| 1 |   os.close(fd) Zamknij deskryptor pliku.  |  
      
| 2 |   os.open(file, flags[, mode]) Otwórz plik i ustaw różne flagi zgodnie z flagami i prawdopodobnie jego trybem zgodnie z trybem.  |  
      
| 3 |   os.read(fd, n) Odczytaj co najwyżej n bajtów z deskryptora pliku fd. Zwraca ciąg zawierający odczytane bajty. Jeśli osiągnięto koniec pliku, do którego odwołuje się fd, zwracany jest pusty łańcuch.  |  
      
| 4 |   os.write(fd, str) Zapisz łańcuch str do deskryptora pliku fd. Zwraca liczbę faktycznie zapisanych bajtów.  |