Rozdział 15 · Python i akta
Linia po linijce
Często wygodniej jest przetwarzać plik linijka po linii niż cały plik.
Czytanie całego pliku naraz nie zawsze jest wygodne — szczególnie jeśli plik jest duży. Często konieczniejsze jest jego przetworzenie wiersz po wierszu:
stroka_za_strokoj.py
with open("spisok.txt", "r", encoding="utf-8") as file:
for line in file:
print(line.strip())
Co dokładnie usuwa strip()
Każdy łańcuch znaków pliku, może poza ostatnim, kończy się niewidzialnym sygnałem
\n. Ale .strip() (Rozdział 8) Oczyszcza wszystko znaków białych spacji po obu stronach linii — spacji, tabulatorów i podziałów — nie tylko tego jednego przelewu linii. Jeśli dane w pliku mogą sensownie zaczynać się lub kończyć spacji, ślepa .strip() może je niezauważalnie uszkodzić. Jeśli celem jest usunięcie przewodu końcowego i nic więcej, użyj line.rstrip("\\n").Debug Lab 1: strip() usuwa więcej, niż się wydaje
citaty.py
with open("citaty.txt", "w", encoding="utf-8") as file:
file.write(„ważny cytat z odstępami wokół krawędzi \n”)
with open("citaty.txt", "r", encoding="utf-8") as file:
for line in file:
print(f"[{line.strip()}]")
[важная цитата с пробелами по краям]
Program wyświetlił cytat bez początkowych i końcowych spacji — mimo że autor celowo je umieścił. .strip() usuwa spacje na brzegach razem z przejściem do nowej linii i nie rozróżnia „losowego śmiecia” od „zamierzonej spacji”: po prostu usuwa wszystkie białe znaki na obu końcach linii.
Poprawiony kod
citaty_fixed.py
with open("citaty.txt", "r", encoding="utf-8") as file:
for line in file:
print(f"[{line.rstrip(chr(10))}]") # Usuń tylko linię podania
Wszystkie wiersze naraz — w liście
readlines.py
with open("spisok.txt", "r", encoding="utf-8") as file:
lines = file.readlines()
print(len(lines), „linie”)
print(lines[0]) # pierwszy łańcuch znaków - razem z twoim \n
Przerwy w liniach to nie tylko \n
W Python pliki tekstowe są odczytywane w trybie uniwersalnych podziałów linii, nawet jeśli linie są oddzielone sekwencją na dysku
\r\n (jak historycznie akceptowano w Windows), podczas czytania w trybie tekstowym, Python daje ci \n. Szczegóły dotyczące trybów tekstowych i binarnych dostępne są w wersji 15.17.Praktyka: Czytanie plików linia po linijce
interaktywny laptop bezpośrednio w przeglądarce – Python 3.14 przez Pyodide, bez instalacji