Python udostępnia wbudowane funkcje umożliwiające tworzenie, zapisywanie i odczytywanie plików. W Pythonie można obsługiwać dwa typy plików: zwykłe pliki tekstowe i pliki binarne (zapisane w języku binarnym, zerami i jedynkami).
- Pliki tekstowe: W pliku 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 pliku tego typu nie ma terminatora linii, a dane są zapisywane po przekonwertowaniu ich na zrozumiały dla maszyn język binarny.
W tym artykule skupimy się na otwieraniu, zamykaniu, czytaniu i zapisywaniu danych w pliku tekstowym. Tutaj również zobaczymy, jak się dostać Pyton wyjście w pliku tekstowym.
Tryby dostępu do plików
Tryby dostępu regulują rodzaj operacji możliwych do wykonania na otwartym pliku. Odnosi się do sposobu, w jaki plik będzie używany po jego otwarciu. Tryby te definiują również lokalizację Uchwyt pliku w pliku. Uchwyt pliku przypomina kursor, który określa, skąd dane mają zostać odczytane lub zapisane w pliku, a my możemy uzyskać dane wyjściowe Pythona w pliku tekstowym.
W Pythonie dostępnych jest 6 trybów dostępu:
- Tylko do odczytu („r”)
- Czytaj i pisz („r+”)
- Tylko do zapisu („w”)
- Pisz i czytaj („w+”)
- Tylko dołącz („a”)
- Dołącz i przeczytaj („a+”)
Tylko do odczytu („r”): Otwórz plik tekstowy do odczytu. Uchwyt znajduje się na początku pilnika. Jeśli plik nie istnieje, zgłasza błąd we/wy. Jest to także domyślny tryb otwierania pliku.
Czytaj i pisz („r+”): Otwórz plik do odczytu i zapisu. Uchwyt znajduje się na początku pilnika. Zgłasza błąd we/wy, jeśli plik nie istnieje.
Tylko do zapisu („w”): Otwórz plik do zapisu. W przypadku istniejących plików dane są obcinane i nadpisywane. Uchwyt znajduje się na początku pilnika. Tworzy plik, jeśli plik nie istnieje.
Pisz 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.
Dołącz i przeczytaj („a+”): Otwórz plik do odczytu i 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.
W jaki sposób pliki są ładowane do pamięci podstawowej?
W komputerze występują dwa rodzaje pamięci, tj. pamięć podstawowa i dodatkowa. Każdy plik, który zapisałeś lub ktokolwiek inny, znajduje się w pamięci dodatkowej, ponieważ wszelkie dane w pamięci podstawowej są usuwane po wyłączeniu komputera. Jeśli więc chcesz zmienić dowolny plik tekstowy lub po prostu pracować z nim w Pythonie, musisz załadować ten plik do pamięci podstawowej. Python współdziała z plikami załadowanymi do pamięci podstawowej lub głównej poprzez procedury obsługi plików (W ten sposób twój system operacyjny daje Pythonowi dostęp do interakcji z otwartym plikiem, przeszukując plik w jego pamięci, jeśli zostanie znaleziony, zwróci procedurę obsługi pliku i wtedy możesz pracować z plikiem).
Otwieranie pliku tekstowego w Pythonie
Odbywa się to za pomocą funkcji open(). Aby skorzystać z tej funkcji, nie trzeba importować żadnego modułu.
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. Zanotuj R jest umieszczany przed nazwą pliku, aby zapobiec traktowaniu znaków w ciągu nazwy pliku jako znaków specjalnych. 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.
Pyton
kiedy zaczyna się q2
# Open function to open the file 'MyFile1.txt'> # (same directory) in append mode and> file1>=> open>(>'MyFile1.txt'>,>'a'>)> # 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 tekstowego w Pythonie
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. Obiekt_pliku.close()
Pyton
# Opening and Closing a file 'MyFile.txt'> # for object name file1.> file1>=> open>(>'MyFile.txt'>,>'a'>)> file1.close()> |
>
jak odczytać plik csv w Javie
>
Zapis do pliku w Pythonie
Istnieją dwa sposoby zapisu w pliku:
- Używanie funkcji zapisu()
- Korzystanie z linii zapisu()
Zapisywanie do pliku tekstowego Pythona za pomocą funkcji write()
pisać() : Wstawia ciąg str1 w pojedynczej linii pliku tekstowego.
File_object.write(str1)>
Zapisywanie do pliku tekstowego przy użyciu funkcji writelines()
linie zapisu(): 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]>
Odniesienie: write() VS writelines()
Czytanie z pliku w Pythonie
Dane z pliku tekstowego można odczytać na trzy sposoby:
- Używanie funkcji read()
- Używanie readline()
- Za pomocą linie odczytu()
Czytanie z pliku za pomocą funkcji read()
Czytać() : Zwraca przeczytane bajty w postaci ciągu znaków. Odczytuje n bajtów, jeśli nie określono n, czyta cały plik.
File_object.read([n])>
Odczyt pliku tekstowego za pomocą funkcji readline()
Czytaj linię() : Odczytuje wiersz pliku i zwraca w postaci ciągu znaków. Dla określonego n odczytuje maksymalnie n bajtów. Jednak nie czyta więcej niż jednej linii, nawet jeśli n przekracza długość linii.
File_object.readline([n])>
Odczytywanie pliku za pomocą funkcji readlines()
linie odczytu(): Odczytuje wszystkie linie i zwraca je jako element ciągu znaków na liście.
File_object.readlines()>
Notatka: „ ” jest traktowane jako znak specjalny składający się z dwóch bajtów.
W tym przykładzie tworzony jest plik o nazwie mójplik.txt i otwierany w trybie zapisu ('w'>). Dane są zapisywane do pliku za pomocąwrite>Iwritelines>metody. Plik jest następnie ponownie otwierany w trybie odczytu i dołączania ('r+'>). Różne operacje odczytu, w tymread>,readline>,readlines>, i wykorzystanieseek>, zademonstruj różne sposoby pobierania danych z pliku. Na koniec plik zostaje zamknięty.
Python3
# Program to show various ways to read and> # write data in a file.> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi
'>,>'This is Paris
'>,>'This is London
'>]> #
is placed to indicate EOL (End of Line)> file1.write(>'Hello
'>)> file1.writelines(L)> file1.close()># to change file access modes> file1>=> open>(>'myfile.txt'>,>'r+'>)> print>(>'Output of Read function is '>)> print>(file1.read())> print>()> # seek(n) takes the file handle to the nth> # byte from the beginning.> file1.seek(>0>)> print>(>'Output of Readline function is '>)> print>(file1.readline())> print>()> file1.seek(>0>)> # To show difference between read and readline> print>(>'Output of Read(9) function is '>)> print>(file1.read(>9>))> print>()> file1.seek(>0>)> print>(>'Output of Readline(9) function is '>)> print>(file1.readline(>9>))> file1.seek(>0>)> # readlines function> print>(>'Output of Readlines function is '>)> print>(file1.readlines())> print>()> file1.close()> |
>
>
Wyjście:
Output of Read function is Hello This is Delhi This is Paris This is London Output of Readline function is Hello Output of Read(9) function is Hello Th Output of Readline(9) function is Hello Output of Readlines function is ['Hello ', 'This is Delhi ', 'This is Paris ', 'This is London ']>
Dołączanie do pliku w Pythonie
W tym przykładzie plik o nazwie mójplik.txt jest początkowo otwierany w trybie zapisu ('w'>) do pisania wierszy tekstu. Plik jest następnie ponownie otwierany w trybie dołączania ('a'>), a do istniejącej treści dodano opcję Dzisiaj. Dane wyjściowe po dodaniu są wyświetlane za pomocąreadlines>. Następnie plik jest ponownie otwierany w trybie zapisu, nadpisując zawartość wartością Jutro. Ostateczny wynik po zapisaniu jest wyświetlany za pomocąreadlines>.
Python3
lokalna data i godzina Java
# 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.readlines())> 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.readlines())> print>()> file1.close()> |
>
>
Wyjście:
Output of Readlines after appending ['This is Delhi ', 'This is Paris ', 'This is London ', 'Today '] Output of Readlines after writing ['Tomorrow ']>
Powiązany artykuł:
- Obiekty plików w Pythonie