usuwanie nadmiarowych spacji w pliku txt programem python
Aby usunąć nadmiarowe spacje w pliku tekstowym za pomocą Pythona, można wykorzystać różne podejścia, takie jak użycie metod split() i join(), wyrażeń regularnych (re.sub()), czy też iteracyjne przetwarzanie linii. Poniżej przedstawiam szczegółowe rozwiązanie.
Najpierw należy otworzyć plik tekstowy w trybie odczytu ('r') i wczytać jego zawartość. Można to zrobić w całości lub linia po linii, w zależności od rozmiaru pliku.
split() i join(): Dzieli tekst na listę słów, ignorując nadmiarowe spacje, a następnie łączy je z powrotem w ciąg z pojedynczymi spacjami.re.sub()): Pozwala na bardziej elastyczne usuwanie nadmiarowych spacji, w tym także innych białych znaków (np. tabulatorów).Po przetworzeniu tekstu należy zapisać wynik do nowego pliku lub nadpisać oryginalny plik.
import re
def remove_extra_spaces(input_file, output_file):
    with open(input_file, 'r', encoding='utf-8') as file:
        content = file.read()
    # Usuwanie nadmiarowych spacji
    cleaned_content = re.sub(r'\s+', ' ', content).strip()
    with open(output_file, 'w', encoding='utf-8') as file:
        file.write(cleaned_content)
# Przykład użycia
remove_extra_spaces('input.txt', 'output.txt')def remove_spaces_line_by_line(input_file, output_file):
    with open(input_file, 'r', encoding='utf-8') as infile, open(output_file, 'w', encoding='utf-8') as outfile:
        for line in infile:
            cleaned_line = ' '.join(line.split())  # Usuwa nadmiarowe spacje w linii
            outfile.write(cleaned_line + '\n')
# Przykład użycia
remove_spaces_line_by_line('input.txt', 'output.txt')strip() i split() jest często stosowana do usuwania nadmiarowych spacji, ponieważ jest prosta i efektywna.re.sub()) są bardziej elastyczne i pozwalają na usuwanie różnych rodzajów białych znaków, takich jak tabulatory czy znaki nowej linii.pandas czy nltk w analizie tekstu sprawia, że operacje na plikach tekstowych są coraz bardziej zintegrowane z większymi pipeline'ami przetwarzania danych.split() i join(): split() dzieli tekst na listę słów, ignorując nadmiarowe spacje, a join() łączy je z powrotem w ciąg z pojedynczymi spacjami.re.sub(): Wyrażenie regularne \s+ dopasowuje dowolną liczbę białych znaków (spacje, tabulatory, nowe linie), które są zastępowane pojedynczą spacją.Plik wejściowy (input.txt):
  To    jest   przykładowy   tekst.  
  Zawiera   nadmiarowe   spacje.  Plik wyjściowy (output.txt):
To jest przykładowy tekst. Zawiera nadmiarowe spacje.utf-8).split() i join(), wyrażeń regularnych (re.sub()), lub iteracyjnego przetwarzania linii.