Jak wyszukać plik tekstowy dla frazy kluczowej lub słowa kluczowego, a następnie wydrukować wiersz, w którym znajduje się fraza kluczowa lub słowo kluczowe?Wyszukaj plik tekstowy i wydrukuj powiązane wiersze w języku Python?
Odpowiedz
searchfile = open("file.txt", "r")
for line in searchfile:
if "searchphrase" in line: print line
searchfile.close()
Aby drukować wiele linii (w łatwy sposób)
f = open("file.txt", "r")
searchlines = f.readlines()
f.close()
for i, line in enumerate(searchlines):
if "searchphrase" in line:
for l in searchlines[i:i+3]: print l,
print
przecinek print l,
zapobiega pojawianiu spacji na wyjściu; końcowe polecenie drukowania wyznacza wyniki z różnych linii.
Albo jeszcze lepiej (kradzież z powrotem Mark Ransom):
with open("file.txt", "r") as f:
searchlines = f.readlines()
for i, line in enumerate(searchlines):
if "searchphrase" in line:
for l in searchlines[i:i+3]: print l,
print
with open('file.txt', 'r') as searchfile:
for line in searchfile:
if 'searchphrase' in line:
print line
z przeprosinami do senderle kto ja rażąco kopiowane.
+1. Byłem zirytowany - ale potem poświęciłem chwilę, aby zrozumieć wypowiedź. To jest świetne! – senderle
@senderle, dzięki za to. Zastanawiałem się tylko nad zredagowaniem twojej odpowiedzi, ale myślałem, że będzie to jeszcze bardziej irytujące - a wyrażenie 'with' jest raczej nowym dodatkiem do Pythona, co sprawia, że twoja odpowiedź jest najbardziej odpowiednia dla niektórych osób. Masz +1 dawno temu! –
tak, ostatnie i dla mnie, tajemnicze, dodawanie, aż do teraz; Muszę przyznać, że kilka tygodni temu starałem się zignorować to stwierdzenie i nie doszedłem do skutku - ale ten prosty przykład doskonale to wyjaśnia. – senderle
Zwróć uwagę na potencjał indeksu spoza zakresu z "i + 3". Możesz zrobić coś takiego:
with open("file.txt", "r") as f:
searchlines = f.readlines()
j=len(searchlines)-1
for i, line in enumerate(searchlines):
if "searchphrase" in line:
k=min(i+3,j)
for l in searchlines[i:k]: print l,
print
Edytuj: może nie jest konieczne. Właśnie przetestowałem kilka przykładów. x [y] daje błędy, jeśli y jest poza zakresem, ale x [y: z] nie wydaje się dawać błędów dla wartości spoza zakresu y i z.
Krojenie nie powoduje błędów poza zakresem. Kiedy bierzesz plasterek, mówisz "podaj listę przedmiotów z tego zakresu". Jeśli w podanym zakresie nie ma żadnych elementów, to pusta lista dostarcza tego, o co prosiło. Z drugiej strony indeksowanie mówi "podaj mi dokładną pozycję w indeksie" i "." Jeśli nie ma elementu w 'i', to zwracanie czegoś - nawet" Brak "- byłoby kłamstwem, więc lepiej jest podnieść wyjątek. – senderle
- 1. C# wyszukaj plik tekstowy, zwróć wszystkie wiersze zawierające słowo
- 2. Jak utworzyć fałszywy plik tekstowy w języku Python
- 3. Sortowanie plik tekstowy alfabetycznie (Python)
- 4. Wydrukuj znak "zatwierdzenia"/znacznik wyboru (✓) U + 2713 w języku Python
- 5. Przeciągnij i upuść plik tekstowy
- 6. Jak wygenerować losowy nazwany plik tekstowy w języku C#?
- 7. Pasek w języku Python z \ n
- 8. Jak załadować określone wiersze z pliku .txt w języku Python?
- 9. C# plik tekstowy wyszukaj konkretne słowo i usuń cały wiersz tekstu, który zawiera to słowo
- 10. Plik konfiguracyjny rejestrowania w języku Python
- 11. Utwórz plik tekstowy w JavaScript
- 12. Plik tekstowy dołączania Androida:
- 13. Jak odczytać duży plik tekstowy w Pythonie?
- 14. Utwórz dokument tekstowy (Python)
- 15. Python odczytał plik tekstowy z drugiej linii do piętnastej
- 16. Python: wydrukuj zmienną w postaci heksadecymalnej
- 17. Czytaj JSON (plik tekstowy) do aplikacji .NET
- 18. Jak skutecznie liczyć powiązane wiersze w modelu za pomocą Doctrine2
- 19. Python najszybszy sposób, aby przeczytać duży plik tekstowy (kilka GB)
- 20. OError: [ERRNO 26] Plik tekstowy zajęty: '/...myvirtualenv/bin/python'
- 21. Golang: Jak odczytać plik tekstowy?
- 22. Czytaj stałej szerokości plik tekstowy
- 23. Wykrywanie i nagrywanie dźwięku w języku Python
- 24. Czytanie plik tekstowy z jQuery
- 25. Korzystanie SAS usunąć plik tekstowy
- 26. sqlite3 w języku Python
- 27. Parse plik tekstowy z XSLT
- 28. Zastąp plik tekstowy vs append
- 29. Szyfruj/odszyfruj plik tekstowy w Delphi?
- 30. Jak edytować plik tekstowy w moim terminalu?
zamknij plik po przetworzeniu. – Rozuur
Jak wydrukować tę linię i trzy inne linie poniżej? –
@Rozuur: Wystarczająco fair. edytowane. – senderle