logo

Obsługa plików w Pythonie

Obsługa plików w Pythonie to potężne i wszechstronne narzędzie, które można wykorzystać do wykonywania szerokiego zakresu operacji. Jednakże ważne jest, aby podczas pisania programów w języku Python dokładnie rozważyć zalety i wady obsługi plików, aby mieć pewność, że kod jest bezpieczny, niezawodny i dobrze działa.

W tym artykule będziemy badać Obsługa plików w Pythonie, zalety, wady i sposób działania funkcji otwierania, zapisu i dołączania w pliku Pythona.

Obsługa plików w Pythonie

Python obsługuje obsługę plików i umożliwia użytkownikom obsługę plików, tj. odczytywanie i zapisywanie plików, a także wiele innych opcji obsługi plików, operowanie na plikach. Koncepcja obsługi plików została rozciągnięta na wiele innych języków, ale implementacja jest albo skomplikowana, albo czasochłonna, podobnie jak inne koncepcje Pythona. Tutaj ta koncepcja jest również łatwa i krótka. Pyton traktuje pliki inaczej jako tekstowe lub binarne i to jest ważne. Każda linia kodu zawiera sekwencję znaków, które tworzą plik tekstowy. Każda linia pliku zakończona jest znakiem specjalnym, zwanym EOL Lub Koniec linii postacie lubią przecinek {,} Lub znak nowej linii. Kończy bieżący wiersz i informuje tłumacza, że ​​rozpoczął się nowy. Zacznijmy od odczytu i zapisu plików.



Zalety obsługi plików w Pythonie

  • Wszechstronność : Obsługa plików w Pythonie umożliwia wykonywanie szerokiego zakresu operacji, takich jak tworzenie, odczytywanie, zapisywanie, dołączanie, zmiana nazwy i usuwanie plików.
  • Elastyczność : Obsługa plików w Pythonie jest bardzo elastyczna, ponieważ umożliwia pracę z różnymi typami plików (np. plikami tekstowymi, plikami binarnymi, Pliki CSV itp.) oraz do wykonywania różnych operacji na plikach (np. odczyt, zapis, dołączanie itp.).
  • Użytkownik przyjazny : Python zapewnia przyjazny dla użytkownika interfejs do obsługi plików, ułatwiający tworzenie, odczytywanie i manipulowanie plikami.
  • Wieloplatformowy : Funkcje obsługi plików w języku Python działają na różnych platformach (np. Windows, Mac, Linux), umożliwiając bezproblemową integrację i kompatybilność.

Wady obsługi plików w Pythonie

  • Podatne na błędy: Operacje obsługi plików w Pythonie mogą być podatne na błędy, szczególnie jeśli kod nie jest napisany starannie lub jeśli występują problemy z systemem plików (np. uprawnienia do plików, blokady plików itp.).
  • Zagrożenia bezpieczeństwa : Obsługa plików w Pythonie może również stwarzać zagrożenie bezpieczeństwa, szczególnie jeśli program akceptuje dane wejściowe użytkownika, które można wykorzystać do uzyskania dostępu do wrażliwych plików w systemie lub ich modyfikacji.
  • Złożoność : Obsługa plików w Pythonie może być złożona, szczególnie podczas pracy z bardziej zaawansowanymi formatami plików lub operacjami. Należy zwrócić szczególną uwagę na kod, aby mieć pewność, że pliki są obsługiwane prawidłowo i bezpiecznie.
  • Wydajność : Operacje obsługi plików w Pythonie mogą być wolniejsze niż w innych językach programowania, szczególnie w przypadku dużych plików lub wykonywania skomplikowanych operacji.

W tym artykule rozważymy następujące kwestie geeks.txt plik jako przykład.

Hello world techcodeview.com 123 456>

Otwórz plik Pythona

Przed wykonaniem jakiejkolwiek operacji na pliku, takiej jak odczyt lub zapis, najpierw musimy otworzyć ten plik. W tym celu powinniśmy skorzystać z wbudowanej funkcji Pythona otwarty() ale w momencie otwierania musimy określić tryb, który reprezentuje cel otwierania pliku.

f = open(filename, mode)>

Gdzie obsługiwany jest następujący tryb:

  1. R: otwórz istniejący plik do operacji odczytu.
  2. w: otwórz istniejący plik w celu operacji zapisu. Jeśli plik zawiera już pewne dane, zostaną one nadpisane, ale jeśli pliku nie ma, również zostanie utworzony.
  3. A: otwórz istniejący plik w celu operacji dołączenia. Nie zastąpi istniejących danych.
  4. r+: Odczyt i zapis danych do pliku. Poprzednie dane w pliku zostaną nadpisane.
  5. w+: Do zapisu i odczytu danych. Spowoduje to zastąpienie istniejących danych.
  6. +: Aby dołączyć i odczytać dane z pliku. Nie zastąpi istniejących danych.

Praca w trybie odczytu

Jest na to więcej niż jeden sposób Jak czytać z pliku w Pythonie . Zobaczmy jak możemy odczytać zawartość pliku w trybie odczytu.

tworzenie tabeli Oracle

Przykład 1: Polecenie open otworzy plik Pythona w trybie odczytu, a pętla for wydrukuje każdą linię znajdującą się w pliku.

Python3




# a file named 'geek', will be opened with the reading mode.> file> => open>(>'geek.txt'>,>'r'>)> # This will print every line one by one in the file> for> each>in> file>:> >print> (each)>

>

>

Wyjście:

Hello world techcodeview.com 123 456>

Przykład 2: W tym przykładzie wyodrębnimy ciąg zawierający wszystkie znaki z pliku Pythona, których będziemy mogli użyć plik.czytaj() .

Python3




# Python code to illustrate read() mode> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read())>

>

>

Wyjście:

Hello world techcodeview.com 123 456>

Przykład 3: W tym przykładzie zobaczymy, jak możemy odczytać plik za pomocą z oświadczenie w Pythonie.

Python3




# Python code to illustrate with()> with>open>(>'geeks.txt'>) as>file>:> >data>=> file>.read()> print>(data)>

>

>

Wyjście:

Hello world techcodeview.com 123 456>

Przykład 4: Innym sposobem odczytania pliku jest wywołanie określonej liczby znaków, tak jak w poniższym kodzie interpreter odczyta pierwsze pięć znaków przechowywanych danych i zwróci je jako ciąg znaków:

Python3




# Python code to illustrate read() mode character wise> file> => open>(>'geeks.txt'>,>'r'>)> print> (>file>.read(>5>))>

>

>

Wyjście:

Hello>

Przykład 5: Możemy także dzielić linie podczas czytania plików w Pythonie. Funkcja split() dzieli zmienną po napotkaniu spacji. Możesz także podzielić, używając dowolnych znaków, jak chcesz.

Python3




# Python code to illustrate split() function> with>open>(>'geeks.txt'>,>'r'>) as>file>:> >data>=> file>.readlines()> >for> line>in> data:> >word>=> line.split()> >print> (word)>

>

>

Wyjście:

['Hello', 'world'] ['techcodeview.com'] ['123', '456']>

Tworzenie pliku za pomocą funkcji write().

Podobnie jak w przypadku czytania pliku w Pythonie, istnieje wiele sposobów, aby to zrobić Zapis do pliku w Pythonie . Zobaczmy, jak możemy zapisać zawartość pliku za pomocą funkcji write() w Pythonie.

Praca w trybie zapisu

Zobaczmy, jak utworzyć plik i jak działa tryb zapisu.

Przykład 1: W tym przykładzie zobaczymy, jak tryb zapisu i funkcja write() są używane do zapisu w pliku. Komenda close() kończy wszystkie używane zasoby i zwalnia system od tego konkretnego programu.

Python3




# Python code to create a file> file> => open>(>'geek.txt'>,>'w'>)> file>.write(>'This is the write command'>)> file>.write(>'It allows us to write in a particular file'>)> file>.close()>

>

>

Wyjście:

This is the write commandIt allows us to write in a particular file>

Przykład 2: Możemy również użyć instrukcji pisemnej wraz z funkcją with().

Python3




# Python code to illustrate with() alongwith write()> with>open>(>'file.txt'>,>'w'>) as f:> >f.write(>'Hello World!!!'>)>

>

>

Wyjście:

Hello World!!!>

Działanie trybu dołączania

Zobaczmy, jak działa tryb dodawania.

Przykład: W tym przykładzie użyjemy pliku Pythona utworzonego w poprzednim przykładzie.

Python3




# Python code to illustrate append() mode> file> => open>(>'geek.txt'>,>'a'>)> file>.write(>'This will add this line'>)> file>.close()>

>

>

Wyjście:

This is the write commandIt allows us to write in a particular fileThis will add this line>

Istnieje również wiele innych poleceń w obsłudze plików Pythona, które są używane do obsługi różnych zadań:

rstrip(): This function strips each line of a file off spaces from the right-hand side. lstrip(): This function strips each line of a file off spaces from the left-hand side.>

Został zaprojektowany tak, aby zapewnić znacznie czystszą składnię i obsługę wyjątków podczas pracy z kodem. To wyjaśnia, dlaczego dobrą praktyką jest używanie ich z oświadczeniem, tam gdzie ma to zastosowanie. Jest to przydatne, ponieważ przy użyciu tej metody wszystkie otwarte pliki zostaną automatycznie zamknięte po zakończeniu, więc następuje automatyczne czyszczenie.

Implementacja wszystkich funkcji w obsłudze plików

W tym przykładzie omówimy wszystkie koncepcje, które widzieliśmy powyżej. Poza tym zobaczymy także, jak możemy usunąć plik za pomocą funkcji usuwania () z Pythona moduł systemu operacyjnego .

Python3

krojenie tablicy Java




import> os> def> create_file(filename):> >try>:> >with>open>(filename,>'w'>) as f:> >f.write(>'Hello, world! '>)> >print>(>'File '> +> filename>+> ' created successfully.'>)> >except> IOError:> >print>(>'Error: could not create file '> +> filename)> def> read_file(filename):> >try>:> >with>open>(filename,>'r'>) as f:> >contents>=> f.read()> >print>(contents)> >except> IOError:> >print>(>'Error: could not read file '> +> filename)> def> append_file(filename, text):> >try>:> >with>open>(filename,>'a'>) as f:> >f.write(text)> >print>(>'Text appended to file '> +> filename>+> ' successfully.'>)> >except> IOError:> >print>(>'Error: could not append to file '> +> filename)> def> rename_file(filename, new_filename):> >try>:> >os.rename(filename, new_filename)> >print>(>'File '> +> filename>+> ' renamed to '> +> new_filename>+> ' successfully.'>)> >except> IOError:> >print>(>'Error: could not rename file '> +> filename)> def> delete_file(filename):> >try>:> >os.remove(filename)> >print>(>'File '> +> filename>+> ' deleted successfully.'>)> >except> IOError:> >print>(>'Error: could not delete file '> +> filename)> if> __name__>=>=> '__main__'>:> >filename>=> 'example.txt'> >new_filename>=> 'new_example.txt'> >create_file(filename)> >read_file(filename)> >append_file(filename,>'This is some additional text. '>)> >read_file(filename)> >rename_file(filename, new_filename)> >read_file(new_filename)> >delete_file(new_filename)>

>

>

Wyjście:

File example.txt created successfully. Hello, world! Text appended to file example.txt successfully. Hello, world! This is some additional text. File example.txt renamed to new_example.txt successfully. Hello, world! This is some additional text. File new_example.txt deleted successfully.>