logo

Zapis do pliku w Pythonie

Python udostępnia wbudowane funkcje umożliwiające tworzenie, zapisywanie i odczytywanie plików. Istnieją dwa typy plików, które można obsługiwać w Pythonie: zwykłe pliki tekstowe i pliki binarne (zapisane w języku binarnym, zerami i jedynkami).

    Pliki tekstowe: w plikach tego typu każda linia tekstu jest zakończona znakiem specjalnym zwanym EOL (koniec linii), który w Pythonie jest domyślnie znakiem nowej linii („ ”). Pliki binarne: W plikach tego typu nie ma terminatora linii, a dane są przechowywane po przekonwertowaniu ich na zrozumiały dla maszyny język binarny.

Notatka: Aby dowiedzieć się więcej o obsłudze plików Kliknij tutaj .



Spis treści

Tryb dostępu

Tryby dostępu regulują rodzaj operacji możliwych do wykonania na otwartym pliku. Odnosi się do sposobu wykorzystania pliku po jego otwarciu. Tryby te definiują również położenie uchwytu pliku w pliku. Uchwyt pliku działa jak kursor, który określa, skąd dane mają zostać odczytane lub zapisane w pliku. Różne tryby dostępu do odczytu pliku to –

    Tylko zapis („w”): Otwórz plik do zapisu. W przypadku istniejącego pliku dane są obcinane i nadpisywane. Uchwyt znajduje się na początku pilnika. Tworzy plik, jeśli plik nie istnieje. Zapisuj i czytaj („w+”): Otwórz plik do odczytu i zapisu. W przypadku istniejącego pliku dane są obcinane i nadpisywane. Uchwyt znajduje się na początku pilnika. Tylko dołącz („a”): Otwórz plik do zapisu. Plik jest tworzony, jeśli nie istnieje. Uchwyt znajduje się na końcu pilnika. Zapisywane dane zostaną wstawione na końcu, po danych już istniejących.

Notatka: Aby dowiedzieć się więcej o trybie dostępu Kliknij tutaj .



dijkstra

Otwieranie pliku

Odbywa się to za pomocą funkcji open(). Aby skorzystać z tej funkcji, nie trzeba importować żadnego modułu. Składnia:

File_object = open(r'File_Name', 'Access_Mode')>

Plik powinien znajdować się w tym samym katalogu co plik programu w Pythonie, w przeciwnym razie w miejscu nazwy pliku należy wpisać pełny adres pliku. Notatka: R jest umieszczane przed nazwą pliku, aby zapobiec traktowaniu znaków w nazwie pliku jako znaku specjalnego. Na przykład, jeśli w adresie pliku znajduje się emp, wówczas jest traktowane jako znak tabulacji i zgłaszany jest błąd dotyczący nieprawidłowego adresu. R powoduje, że ciąg znaków jest surowy, to znaczy informuje, że ciąg nie zawiera żadnych znaków specjalnych. R można zignorować, jeśli plik znajduje się w tym samym katalogu, a adres nie jest umieszczany.

Python3






# Open function to open the file 'MyFile1.txt'> # (same directory) in read mode and> file1>=> open>('MyFile.txt', 'w')> > # store its reference in the variable file1> # and 'MyFile2.txt' in D:Text in file2> file2>=> open>(r'D:TextMyFile2.txt', 'w>+>')>

>

>

Tutaj plik 1 jest tworzony jako obiekt dla MyFile1, a plik 2 jako obiekt dla MyFile2.

Zamykanie pliku

Funkcja close() zamyka plik i zwalnia miejsce w pamięci zajmowane przez ten plik. Stosuje się go w momencie, gdy plik nie jest już potrzebny lub ma zostać otwarty w innym trybie pliku. Składnia:

File_object.close()>

Python3


kwartały w roku



# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>('MyFile.txt', 'w')> file1.close()>

>

>

Zapis do pliku

Istnieją dwa sposoby zapisu w pliku.

    write() : Wstawia ciąg str1 w pojedynczej linii pliku tekstowego.
File_object.write(str1)>
    writelines() : W przypadku listy elementów ciągu każdy ciąg jest wstawiany do pliku tekstowego. Służy do wstawiania wielu ciągów jednocześnie.
File_object.writelines(L) for L = [str1, str2, str3]>

Notatka: „ ” jest traktowane jako znak specjalny składający się z dwóch bajtów. Przykład:

Python3




# Python program to demonstrate> # writing to file> # Opening a file> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> s>=> 'Hello '> # Writing a string to file> file1.write(s)> # Writing multiple strings> # at a time> file1.writelines(L)> # Closing file> file1.close()> # Checking if the data is> # written to file or not> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(file1.read())> file1.close()>

>

>

Wyjście:

Hello This is Delhi This is Paris This is London>

Dołączanie do pliku

Kiedy plik jest otwarty w trybie dodawania, uchwyt znajduje się na końcu pliku. Zapisywane dane zostaną wstawione na końcu, po danych już istniejących. Zobaczmy poniższy przykład, aby wyjaśnić różnicę między trybem zapisu a trybem dodawania.

Python3




# Python program to illustrate> # Append vs write mode> file1>=> open>('myfile.txt', 'w')> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>('myfile.txt', 'a')># append mode> file1.write('Today ')> file1.close()> file1>=> open>('myfile.txt', 'r')> print>('Output of Readlines after appending')> print>(file1.read())> print>()> file1.close()> # Write-Overwrites> file1>=> open>('myfile.txt', 'w')># write mode> file1.write('Tomorrow ')> file1.close()> file1>=> open>('myfile.txt', 'r')> print>('Output of Readlines after writing')> print>(file1.read())> print>()> file1.close()>

>

wybierz sql z wielu tabel

>

Wyjście:

Output of Readlines after appending This is Delhi This is Paris This is London Today Output of Readlines after writing Tomorrow>

Z oświadczeniem

with w Pythonie jest używany do obsługi wyjątków, dzięki czemu kod jest czystszy i znacznie bardziej czytelny. Upraszcza zarządzanie typowymi zasobami, takimi jak strumienie plików. W przeciwieństwie do powyższych implementacji, podczas korzystania z instrukcji with nie ma potrzeby wywoływania metody file.close(). Sama instrukcja with zapewnia prawidłowe pozyskiwanie i uwalnianie zasobów. Składnia:

with open filename as file:>

Python3




polecenie zip w systemie Linux

# Program to show various ways to> # write data to a file using with statement> L>=> ['This>is> Delhi ', 'This>is> Paris ', 'This>is> London ']> # Writing to file> with>open>('myfile.txt', 'w') as file1:> ># Writing data to a file> >file1.write('Hello ')> >file1.writelines(L)> # Reading from file> with>open>('myfile.txt', 'r>+>') as file1:> ># Reading form a file> >print>(file1.read())>

>

>

Wyjście:

Hello This is Delhi This is Paris This is London>

Uwaga: aby dowiedzieć się więcej o wyciągu, kliknij tutaj.

używając do instrukcji:

kroki:

Aby zapisać do pliku w Pythonie za pomocą instrukcji for, możesz wykonać następujące kroki:

Otwórz plik za pomocą funkcji open() z odpowiednim trybem („w” do zapisu).
Użyj instrukcji for, aby zapętlić dane, które chcesz zapisać w pliku.
Użyj metody write() obiektu pliku, aby zapisać dane do pliku.
Zamknij plik, korzystając z metody Close() obiektu pliku.

W tym przykładzie plik jest otwierany do zapisu przy użyciu instrukcji with open(‚plik.txt”, „w”) jako f. Dane do zapisania są przechowywane na liście zwanej danymi. Instrukcja for służy do zapętlenia każdej linii danych na liście. Instrukcja f.write(line + „ ”) zapisuje każdą linię danych do pliku ze znakiem nowej linii ( ) na końcu. Na koniec plik jest automatycznie zamykany po zakończeniu bloku with.

Python3

multiplekser dwa do jednego




# Open the file for writing> with>open>(>'file.txt'>,>'w'>) as f:> ># Define the data to be written> >data>=> [>'This is the first line'>,>'This is the second line'>,>'This is the third line'>]> ># Use a for loop to write each line of data to the file> >for> line>in> data:> >f.write(line>+> ' '>)> ># Optionally, print the data as it is written to the file> >print>(line)> # The file is automatically closed when the 'with' block ends>

>

>

Wyjście

This is the first line This is the second line This is the third line>

Zbliżać się:
Kod otwiera plik o nazwie file.txt w trybie zapisu przy użyciu bloku with, aby upewnić się, że plik zostanie poprawnie zamknięty po zakończeniu bloku. Definiuje listę ciągów zwanych danymi, która reprezentuje linie, które mają zostać zapisane w pliku. Następnie kod używa pętli for do iteracji po każdym łańcuchu danych i zapisuje każdy ciąg do pliku przy użyciu metody write(). Kod dołącza znak nowego wiersza do każdego ciągu, aby mieć pewność, że każdy ciąg zostanie zapisany w nowym wierszu pliku. Kod opcjonalnie drukuje każdy ciąg znaków podczas jego zapisywania w pliku.

Złożoność czasowa:
Zarówno kod oryginalny, jak i kod alternatywny mają złożoność czasową O(n), gdzie n jest liczbą linii do zapisania w pliku. Dzieje się tak, ponieważ oba kody muszą iterować po każdym wierszu listy danych, aby zapisać je w pliku.

Złożoność przestrzeni:
Kod oryginalny i kod alternatywny mają tę samą złożoność przestrzenną O(n), gdzie n to liczba linii do zapisania w pliku. Dzieje się tak, ponieważ oba kody muszą utworzyć listę ciągów znaków reprezentujących linie, które mają zostać zapisane w pliku.