Python - We / wy plików

W tym rozdziale omówiono wszystkie podstawowe funkcje we / wy dostępne w Pythonie. Więcej funkcji można znaleźć w standardowej dokumentacji języka Python.

Drukowanie na ekranie

Najprostszym sposobem uzyskania wyniku jest użycie instrukcji print , w której można przekazać zero lub więcej wyrażeń oddzielonych przecinkami. Ta funkcja konwertuje przekazane wyrażenia na ciąg i zapisuje wynik na standardowe wyjście w następujący sposób -

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"

Daje to następujący wynik na ekranie standardowym -

Python is really a great language, isn't it?

Czytanie danych z klawiatury

Python zapewnia dwie wbudowane funkcje do odczytu wiersza tekstu ze standardowego wejścia, które domyślnie pochodzi z klawiatury. Te funkcje to -

  • raw_input
  • input

Raw_input Function

Funkcja raw_input ([zachęta]) odczytuje jedną linię ze standardowego wejścia i zwraca ją jako łańcuch (usuwając końcowy znak nowej linii).

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

To monituje o wprowadzenie dowolnego ciągu i wyświetli ten sam ciąg na ekranie. Kiedy wpisałem „Hello Python!”, Jego wyjście wyglądało następująco:

Enter your input: Hello Python
Received input is :  Hello Python

Wejście Function

Funkcja input ([prompt]) jest równoważna funkcji raw_input, z tą różnicą, że zakłada, że ​​dane wejściowe są poprawnym wyrażeniem Pythona i zwraca oszacowany wynik.

#!/usr/bin/python

str = input("Enter your input: ")
print "Received input is : ", str

Dałoby to następujący wynik na podstawie wprowadzonych danych wejściowych -

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is :  [10, 20, 30, 40]

Otwieranie i zamykanie plików

Do tej pory czytałeś i zapisywałeś na standardowe wejście i wyjście. Teraz zobaczymy, jak używać rzeczywistych plików danych.

Python domyślnie udostępnia podstawowe funkcje i metody niezbędne do manipulowania plikami. Większość operacji na plikach można wykonać za pomocą rozszerzeniafile obiekt.

Otwarty Funkcja

Zanim będziesz mógł odczytać lub zapisać plik, musisz go otworzyć za pomocą wbudowanej funkcji open () języka Python . Ta funkcja tworzy plikfile obiekt, który zostałby użyty do wywołania innych powiązanych z nim metod obsługi.

Składnia

file object = open(file_name [, access_mode][, buffering])

Oto szczegóły parametrów -

  • file_name - Argument nazwa_pliku to ciąg znaków zawierający nazwę pliku, do którego chcesz uzyskać dostęp.

  • access_mode- access_mode określa tryb, w jakim plik ma zostać otwarty, tj. Czytać, zapisywać, dołączać itd. Pełna lista możliwych wartości jest podana poniżej w tabeli. Jest to parametr opcjonalny, a domyślnym trybem dostępu do plików jest odczyt (r).

  • buffering- Jeśli wartość buforowania jest ustawiona na 0, buforowanie nie jest wykonywane. Jeśli wartość buforowania wynosi 1, buforowanie linii jest wykonywane podczas dostępu do pliku. Jeśli określisz wartość buforowania jako liczbę całkowitą większą niż 1, operacja buforowania zostanie wykonana ze wskazanym rozmiarem buforu. Jeśli jest ujemny, domyślny rozmiar bufora (zachowanie domyślne).

Oto lista różnych trybów otwierania pliku -

Sr.No. Tryby i opis
1

r

Otwiera plik tylko do odczytu. Wskaźnik pliku jest umieszczany na początku pliku. To jest tryb domyślny.

2

rb

Otwiera plik do odczytu tylko w formacie binarnym. Wskaźnik pliku jest umieszczany na początku pliku. To jest tryb domyślny.

3

r+

Otwiera plik do odczytu i zapisu. Wskaźnik pliku umieszczony na początku pliku.

4

rb+

Otwiera plik do odczytu i zapisu w formacie binarnym. Wskaźnik pliku umieszczony na początku pliku.

5

w

Otwiera plik tylko do zapisu. Zastępuje plik, jeśli istnieje. Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

6

wb

Otwiera plik do zapisu tylko w formacie binarnym. Zastępuje plik, jeśli istnieje. Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

7

w+

Otwiera plik do zapisu i odczytu. Zastępuje istniejący plik, jeśli plik istnieje. Jeśli plik nie istnieje, tworzy nowy plik do odczytu i zapisu.

8

wb+

Otwiera plik do zapisu i odczytu w formacie binarnym. Zastępuje istniejący plik, jeśli plik istnieje. Jeśli plik nie istnieje, tworzy nowy plik do odczytu i zapisu.

9

a

Otwiera plik do dołączenia. Wskaźnik pliku znajduje się na końcu pliku, jeśli plik istnieje. Oznacza to, że plik jest w trybie dołączania. Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

10

ab

Otwiera plik do dołączenia w formacie binarnym. Wskaźnik pliku znajduje się na końcu pliku, jeśli plik istnieje. Oznacza to, że plik jest w trybie dołączania. Jeśli plik nie istnieje, tworzy nowy plik do zapisu.

11

a+

Otwiera plik do dołączania i odczytu. Wskaźnik pliku znajduje się na końcu pliku, jeśli plik istnieje. Plik otwiera się w trybie dołączania. Jeśli plik nie istnieje, tworzy nowy plik do odczytu i zapisu.

12

ab+

Otwiera plik do dołączania i odczytu w formacie binarnym. Wskaźnik pliku znajduje się na końcu pliku, jeśli plik istnieje. Plik otwiera się w trybie dołączania. Jeśli plik nie istnieje, tworzy nowy plik do odczytu i zapisu.

W pliku Atrybuty obiektu

Po otwarciu pliku i utworzeniu jednego obiektu pliku można uzyskać różne informacje związane z tym plikiem.

Oto lista wszystkich atrybutów związanych z obiektem pliku -

Sr.No. Atrybut i opis
1

file.closed

Zwraca true, jeśli plik jest zamknięty, false w przeciwnym razie.

2

file.mode

Zwraca tryb dostępu, w którym plik został otwarty.

3

file.name

Zwraca nazwę pliku.

4

file.softspace

Zwraca fałsz, jeśli miejsce jest jawnie wymagane w print, w przeciwnym razie wartość true.

Przykład

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace

Daje to następujący wynik -

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb
Softspace flag :  0

Close () metoda

Metoda close () obiektu plikowego usuwa wszelkie niepisane informacje i zamyka obiekt plik, po czym nie można już pisać.

Python automatycznie zamyka plik, gdy obiekt odniesienia pliku zostanie ponownie przypisany do innego pliku. Dobrą praktyką jest używanie metody close () do zamykania pliku.

Składnia

fileObject.close()

Przykład

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name

# Close opend file
fo.close()

Daje to następujący wynik -

Name of the file:  foo.txt

Czytanie i pisanie plików

Obiekt file zapewnia zestaw metod dostępu, które ułatwiają nam życie. Zobaczylibyśmy, jak używać metod read () i write () do odczytu i zapisu plików.

Write () Metoda

Metoda write () zapisuje dowolny ciąg znaków do otwartego pliku. Należy zauważyć, że ciągi znaków Pythona mogą zawierać dane binarne, a nie tylko tekst.

Metoda write () nie dodaje znaku nowego wiersza („\ n”) na końcu ciągu -

Składnia

fileObject.write(string)

Tutaj przekazany parametr to treść, która ma zostać zapisana w otwartym pliku.

Przykład

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.\nYeah its great!!\n")

# Close opend file
fo.close()

Powyższa metoda utworzy plik foo.txt i zapisze określoną zawartość w tym pliku, a na koniec zamknie ten plik. Gdybyś otworzył ten plik, miałby następującą zawartość.

Python is a great language.
Yeah its great!!

Read () Metoda

Metoda read () odczytuje ciąg znaków z otwartego pliku. Należy zauważyć, że łańcuchy znaków w języku Python mogą zawierać dane binarne. oprócz danych tekstowych.

Składnia

fileObject.read([count])

Tutaj przekazywany parametr to liczba bajtów do odczytania z otwartego pliku. Ta metoda zaczyna czytać od początku pliku i jeśli brakuje count , wtedy próbuje odczytać jak najwięcej, być może do końca pliku.

Przykład

Weźmy plik foo.txt , który stworzyliśmy powyżej.

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend file
fo.close()

Daje to następujący wynik -

Read String is :  Python is

Plik Pozycje

Metoda tell () informuje o bieżącej pozycji w pliku; innymi słowy, następny odczyt lub zapis nastąpi z taką liczbą bajtów od początku pliku.

Metoda seek (offset [, from]) zmienia bieżącą pozycję pliku. Przesunięcie Argument wskazuje liczbę bajtów, które mają być przeniesione. Z argumentów określa punkt odniesienia, z którego bajty mają zostać przeniesione.

Jeśli from jest ustawiony na 0, oznacza to, że jako punkt odniesienia użyj początku pliku, a 1 oznacza, że ​​jako punkt odniesienia użyj bieżącej pozycji, a jeśli jest ustawiony na 2, to koniec pliku zostanie przyjęty jako punkt odniesienia .

Przykład

Weźmy plik foo.txt , który stworzyliśmy powyżej.

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print "Read String is : ", str

# Check current position
position = fo.tell()
print "Current file position : ", position

# Reposition pointer at the beginning once again
position = fo.seek(0, 0);
str = fo.read(10)
print "Again read String is : ", str
# Close opend file
fo.close()

Daje to następujący wynik -

Read String is :  Python is
Current file position :  10
Again read String is :  Python is

Zmiana nazwy i usuwanie plików

Pyton os Moduł udostępnia metody ułatwiające wykonywanie operacji przetwarzania plików, takich jak zmiana nazwy i usuwanie plików.

Aby użyć tego modułu, musisz go najpierw zaimportować, a następnie możesz wywołać wszelkie powiązane funkcje.

Metoda rename ()

Metoda rename () przyjmuje dwa argumenty, bieżącą nazwę pliku i nową nazwę pliku.

Składnia

os.rename(current_file_name, new_file_name)

Przykład

Poniżej znajduje się przykład zmiany nazwy istniejącego pliku test1.txt -

#!/usr/bin/python
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

Remove () Metoda

Możesz użyć metody remove () , aby usunąć pliki, podając jako argument nazwę pliku do usunięcia.

Składnia

os.remove(file_name)

Przykład

Poniżej znajduje się przykład usuwania istniejącego pliku test2.txt -

#!/usr/bin/python
import os

# Delete file test2.txt
os.remove("text2.txt")

Katalogi w Pythonie

Wszystkie pliki są zawarte w różnych katalogach, a Python nie ma problemu z ich obsługą. Plikos moduł ma kilka metod, które pomagają tworzyć, usuwać i zmieniać katalogi.

Mkdir () Metoda

Możesz użyć metody mkdir () plikuosmoduł do tworzenia katalogów w bieżącym katalogu. Musisz podać argument do tej metody, który zawiera nazwę katalogu, który ma zostać utworzony.

Składnia

os.mkdir("newdir")

Przykład

Poniżej znajduje się przykład tworzenia testu katalogu w bieżącym katalogu -

#!/usr/bin/python
import os

# Create a directory "test"
os.mkdir("test")

Chdir () Metoda

Aby zmienić bieżący katalog, możesz użyć metody chdir () . Metoda chdir () przyjmuje argument, którym jest nazwa katalogu, który ma być katalogiem bieżącym.

Składnia

os.chdir("newdir")

Przykład

Poniżej znajduje się przykład przejścia do katalogu „/ home / newdir” -

#!/usr/bin/python
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

Getcwd () Metoda

Metoda getcwd () wyświetla bieżący katalog roboczy.

Składnia

os.getcwd()

Przykład

Poniżej znajduje się przykład, aby podać bieżący katalog -

#!/usr/bin/python
import os

# This would give location of the current directory
os.getcwd()

Rmdir () Metoda

Metoda rmdir () usuwa katalog, który jest przekazywany jako argument w metodzie.

Przed usunięciem katalogu należy usunąć całą jego zawartość.

Składnia

os.rmdir('dirname')

Przykład

Poniżej znajduje się przykład usuwania katalogu „/ tmp / test”. Wymagane jest podanie w pełni kwalifikowanej nazwy katalogu, w przeciwnym razie szukałby tego katalogu w bieżącym katalogu.

#!/usr/bin/python
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )

Metody związane z plikami i katalogami

Istnieją trzy ważne źródła, które zapewniają szeroką gamę narzędzi do obsługi plików i katalogów w systemach operacyjnych Windows i Unix oraz do manipulowania nimi. Są następujące -

  • Metody obiektu pliku : obiekt pliku udostępnia funkcje do manipulowania plikami.

  • Metody obiektów systemu operacyjnego : Zapewnia metody przetwarzania plików, a także katalogów.