Jak wyodrębnić tekst z pliku TXT za pomocą Pythona: przewodnik krok po kroku
Jak wyodrębnić tekst z pliku TXT w Pythonie
Natrafiłem na ten problem, próbując wyciągnąć tekst z .txtpliku w Pythonie i szczerze mówiąc, to jedno z tych małych zadań, które wydają się banalnie proste – dopóki nie napotkałem problemu. Powiedziałbym, że zajęło mi kilka nocnych prób, bawiąc się ścieżkami, kodowaniem i zamykaniem plików, zanim w końcu zrozumiałem, o co chodzi. Jeśli dopiero zaczynasz przygodę z obsługą plików w Pythonie, oto moje podsumowanie tego, co w końcu zadziałało.
.txtKrok 1: Utwórz plik przykładowy
Po pierwsze, musisz mieć plik do odczytu, prawda? Właśnie utworzyłem plik tekstowy o nazwie sample.txt. Wrzuć trochę zwykłego tekstu — nazwy, liczby, cokolwiek. Ważne jest, aby zapisać go w łatwo dostępnym miejscu — najlepiej w tym samym folderze co skrypt, aby uprościć sprawę. Jeśli go tam nie ma, może być konieczne podanie pełnej ścieżki, na przykład r'C:\Users\YourName\Documents\sample.txt'. Uważaj tylko na ukośniki w systemie Windows i pamiętaj, aby używać surowych ciągów znaków lub podwójnych ukośników odwrotnych. Sprawdź również dokładnie, czy kodowanie pliku jest zgodne z oczekiwaniami Pythona. Zazwyczaj UTF-8 jest w porządku, ale jeśli masz do czynienia ze znakami specjalnymi, może być konieczne ich jawne określenie później.
Krok 2: Otwieranie pliku w Pythonie
Tu zaczyna się potencjalne zamieszanie. Aby odczytać plik, należy użyć open()funkcji Pythona. Potrzebne są dwie rzeczy: nazwa pliku (lub ścieżka) oraz tryb. Tryb „r” służy do odczytu. Najprostszym sposobem jest więc użycie instrukcji with, która automatycznie zamyka plik po zakończeniu. Na przykład tak:
with open('sample.txt', 'r') as file: # do stuff here
Jeśli spróbujesz otworzyć plik bez with, nie zapomnij go później zamknąć, w przeciwnym razie możesz natknąć się na blokady plików – szczególnie w systemie Windows. Spędziłem mnóstwo czasu na debugowaniu dziwnych błędów „plik jest używany przez inny proces”, ponieważ zapomniałem zamknąć pliki.
A jeśli Twój plik nie znajduje się w tym samym katalogu, upewnij się, że podałeś pełną ścieżkę. W systemie Windows oznacza to unikanie ukośników odwrotnych lub używanie surowych ciągów znaków: r'C:\path\to\sample.txt'. W przeciwnym razie Python będzie szukał w bieżącym katalogu roboczym, co może być problematyczne, jeśli nie jesteś tego świadomy.
Krok 3: Wyodrębnianie zawartości za pomocą.read()
Po otwarciu pliku wystarczy wywołać .read(). Spowoduje to pobranie całego tekstu w pliku jako jednego dużego ciągu znaków — idealne rozwiązanie, jeśli chcesz po prostu wyświetlić lub przetworzyć cały tekst naraz. Twój kod powinien więc wyglądać tak:
with open('sample.txt', 'r') as file: content = file.read() print(content)
To wyświetli cały tekst. Całkiem proste, prawda? Jeśli nie wygląda tak, jak w Twoim pliku, sprawdź dokładnie nazwę pliku, ścieżkę i kodowanie. Ponownie, UTF-8 zazwyczaj działa, chyba że w treści znajdują się nietypowe znaki.
Ważne ostrzeżenia i wskazówki
- Korzystanie z
withtej funkcji to najlepsza praktyka — automatycznie zamyka plik. Jeśliopen()nie korzystasz z tej funkcji, musisz wywołać jąfile.close()ręcznie, w przeciwnym razie ryzykujesz problemy z blokowaniem, szczególnie w systemie Windows. - W przypadku dużych plików
.read()może nie być najlepszym rozwiązaniem.Ładuje wszystko do pamięci, co może być problemem, jeśli plik jest ogromny. Zamiast tego możesz użyćreadlines()listy wierszy lub iterować wiersz po wierszu za pomocąfor line in file:. Ale to historia na inny dzień. - Jeśli tekst nie jest w zwykłym formacie ASCII, należy jawnie określić kodowanie:
open('sample.txt', 'r', encoding='utf-8'). Napotkałem dziwne błędy, przez które tekst był zniekształcony, ponieważ Python domyślnie używał innego kodowania.
Dlaczego to ważne
Umiejętność wyciągania tekstu z pliku to podstawowa umiejętność w Pythonie. Niezależnie od tego, czy oczyszczasz dane, analizujesz logi, czy po prostu się bawisz, wiedza o tym, jak poprawnie otwierać i odczytywać pliki, pomaga uniknąć problemów w przyszłości. Spędziłem zdecydowanie za dużo czasu na debugowaniu plików, które nie drukowały się poprawnie, ponieważ zapomniałem o właściwym trybie pliku lub kodowaniu.
Zajęło mi to trochę prób i błędów, zwłaszcza pamiętając o tym, aby zawsze określać tryb „r”, sprawdzać ścieżki i poprawnie obsługiwać kodowanie. Jeśli utkniesz, sprawdź dokładnie lokalizację pliku, czy nazwa pliku jest dokładnie taka sama i czy uprawnienia są poprawne. I nie zapominaj, że czasami kodowanie pliku jest przyczyną pojawiania się dziwnych znaków.
Tak czy inaczej, zrozumienie tego podstawowego procesu naprawdę otwiera przed nami o wiele bardziej zaawansowane możliwości obsługi plików. Gdy już opanujesz czytanie plików, pozostaje tylko przejść do zapisu, parsowania lub przetwarzania danych. Mam nadzieję, że to pomoże – zajęło mi zdecydowanie za dużo czasu, zanim rozgryzłem te drobne pułapki. Mam nadzieję, że to oszczędzi komuś innemu trochę frustracji i kilku nocnych restartów!
Powiązane artykuły
Czy ten artykuł był pomocny?