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.