Definicja: CSV (wartość oddzielona przecinkami) jest podobna do pliku tekstowego, w którym przechowywane dane są oddzielone pewnym ogranicznikiem (zwykle przecinkiem). Każde pole jest oddzielone ogranicznikiem. W Pythonie pliki CSV są przetwarzane za pomocą modułu CSV. Więc musimy zaimportować ten moduł.
Dawny: importuj csv
Poniższy przykład pokazuje sposób przechowywania danych w pliku CSV. Tutaj przecinek jest używany jako ogranicznik.
Nazwa pliku : informacje o osobie.csv
imię, drugie imię, nazwisko, wiek;
Anand, kumar, matematyka, 31
Sachin, ramesh, tendulakar, 40
Virendra, sehwag, singh, 38
Rahul, Dravid, xyz, 40
Plik CSV można otworzyć w dowolnym z następujących trybów:
r -> tryb odczytu
w -> tryb pisania
a -> tryb dołączania
W Pythonie operacja na pliku jest wykonywana w następującej kolejności:
- Otworzyć plik;
- Czytaj, pisz lub dołącz. Gdy określimy tryb zapisu, plik zostanie otwarty w trybie zapisu, jeśli plik istnieje, w przeciwnym razie zostanie utworzony plik. Dotyczy to również trybu dołączania. W trybie odczytu, jeśli plik istnieje, otworzy go w trybie odczytu, w przeciwnym razie zgłasza wyjątek FileNotFoundError; i
- Zamknij plik.
Otwórz plik csv
Używana jest wbudowana metoda open().
Dawny:
- f = otwórz("nazwa pliku.csv”,”r”) # W csv Pythonie domyślnym jest tryb odczytu
- f = otwórz("nazwa pliku.csv”,'w') # tryb zapisu
Zamykanie pliku
Używana jest wbudowana metoda close().
fp = otwórz("nazwa pliku.csv”, „w”)# wykonaj kilka operacji na plikach
fp.blisko()
Operacje na plikach z użyciem
Najlepszym sposobem na wykonanie operacji na pliku CSV i najczęściej stosowaną metodą jest użycie instrukcji. Użycie tego gwarantuje, że plik zostanie zamknięty po wyjściu z bloku w środku.
Dawny:
with open('nazwa pliku.csv', 'w', kodowanie = 'utf-8') jako fp:#wykonaj pewne operacje na plikach
#wypowiedzi poza blokiem z
Gdy wyjdziemy z bloku, plik zostanie automatycznie zamknięty.
Napisz do pliku CSV
Aby pisać do pliku CSV, musimy go otworzyć w trybie zapisu „w” lub dołączenia „a”.
W poniższym przykładzie zamierzamy czytać z jednego pliku i pisać do nowego pliku new.
importuj csvwith open('nazwa pliku.csv','r') jako fp:
czytnik = csv.czytnik(fp)#odczytaj plik
with open('nowa nazwapliku.csv','w') jako fq:
pisarz = csv.writer(fq, ogranicznik = '-')
dla linii w czytniku:#Aby iterować w każdym wierszu
pisarz.writerow(line)#wpisz linię do nowego pliku
Korzystanie z pisarza słownika
W poniższym przykładzie zamierzamy czytać z jednego pliku i pisać do nowego pliku za pomocą metody DictWriter().
importuj csvwith open('nazwa pliku.csv','r') jako fp:
czytnik = csv.DictReader(fp)#odczytaj plik
with open('nowa nazwapliku.csv','w',newline=") as fq:#newline =", aby uniknąć dodawania dodatkowej nowej linii
row_names = ['imię','drugie imię','nazwisko','wiek']
pisarz = csv.DictWriter(fq, nazwy pól = nazwy wierszy, ogranicznik = '-')
pisarz.writeheader()#wpisz wiersze nagłówka
dla linii w czytniku:
pisarz.napisz(wiersz)
Pisarze()
Ta metoda zapisuje wiele wierszy naraz; musimy przekazać listę list. Dawny:
importuj csvhead_names = ['imię','drugie imię','nazwisko','wiek']
# wierszy danych w pliku csv
wiersze = [['Anand','kumar','matematyka',31],
['Sachin','ramesh','tendulakar',40],
['Virendra','sehwag','singh',38],
['Rahul','dravid','xyz',40]]
# zapis do pliku csv
with open('nowa nazwapliku.csv', 'w') jako fp:
# tworzenie obiektu do zapisu csv
csvwriter = csv.pisarz (fp)
# napisz nagłówek
csvwriter.writerow(head_names)
# napisz wiersze danych
csvwriter.piszewiersze(wiersze)
Czytanie z pliku
Aby odczytać plik CSV w Pythonie, musimy otworzyć plik w trybie czytania 'r'. Dawny:
importuj csvwith open('nazwa pliku.csv','r') jako fp:
dane = csv.czytelnik(fp)
#Domyślny ogranicznik to przecinek, jeśli csv oddzielone innym ogranicznikiem należy określić
#Dane Ex = csv.czytnik(fp, ogranicznik = '-')
print(data) # zwraca obiekt
#pomijanie nagłówka
next(data)#wywołaj następną metodę generatora
dla wiersza w danych:#Aby iterować w każdym wierszu
print(line) # wypisz każdą wartość z listy
fp.seek(0)# przenieś kursor do pierwszej linii
dla linii w danych:
print(line[0])# drukuj tylko imiona
Korzystanie z czytnika słownika
Aby odczytać plik csv za pomocą metody DictReader().
importuj csvwith open('nazwa pliku.csv','r') jako fp:
czytnik = csv.DictReader(fp)#odczytaj plik
dla linii w czytniku:
print(line)#drukuj każdy wiersz w formie słownika
fp.seek(0)# przenieś kursor do pierwszej linii
dla danych w czytniku:
print(data['wiek'])#możemy wydrukować tylko wiek używając klawisza 'wiek'
Wniosek
Nauczyliśmy się czytać i zapisywać plik za pomocą modułu CSV. Plik CSV jest najczęściej używanym formatem plików w branży automatyki, ponieważ jest łatwy do odczytania i modyfikacji danych. Ponadto Pandas to kolejna metoda, której możemy użyć do przetwarzania plików CSV.