eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.comp.programmingelementarne pytania z pythona › Re: elementarne pytania z pythona
  • Data: 2020-04-11 13:04:42
    Temat: Re: elementarne pytania z pythona
    Od: fir <p...@g...com> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    W dniu sobota, 11 kwietnia 2020 12:59:21 UTC+2 użytkownik Piotr Chamera napisał:
    > W dniu 2020-04-11 o 12:06, fir pisze:
    > > jeszcze jedno pytanke, jesli mozn, ulatwiloby mi sprawe
    > >
    > > to ogniem i mieczem przkonwertowalem sobie z epub na txt jakism konwerterem
    > > zachowal unicode itd chyab wszystko jest ok poza faktem ze tam gdzie powinno byc
    jedno newline 0x0d 0x0a pwoiedzmy jest za kazdym razem 0x0a 0x0a 0x0a (trzy 0A)
    > > i wiekszosc edytorow traktuje to jako 3 newliny
    > >
    > > jak sprawdzc czy
    > > ogniem_i_mieczem_text[m] jest pojedyncza linia z 0x0a? ew jak napisac prsty
    konwerter w pythonie ktory by polknal plik i zamianil kazde 3 0x0A na jedno 0xA
    >
    > To już moja ostatnia odpowiedź dzisiaj.
    >
    >
    > Konwersja całości, to najprościej chyba jakoś tak:
    >
    > s jest twoim źródłowym tekstem
    >
    > >>> s.replace(u"\u000a\u000a\u000a", u"\u000a")
    >
    > albo
    >
    > >>> s.replace(u"\n\n\n", u"\n")
    >
    > ale nie wiem, czy interpretacja \n nie zależy od systemu
    >
    > uwaga: to zwraca nowego stringa, nie podmienia w oryginalnym.
    >
    >
    >
    >
    > A sprawdzania można zrobić np. tak:
    >
    > przykładowy wieloliniowy tekst:
    >
    > s = u"""ahjklsl
    >
    >
    > ajkshgjkgh
    >
    >
    > hsajhkjhskj
    >
    >
    > hnajkhjhjl"""
    >
    >
    > poniższe sprawdza czy podany tekst dzieli się na określone 3 części
    >
    > >>> m = re.match(u"(.*?)(\u000a+)(.*)", s, flags=re.DOTALL)
    >
    > (.*?) ta grupa dopasowuje dowolny tekst w sposób niezachłanny
    > (\u000a+) ta grupa dopasowuje jeden lub więcej znaków końca linii
    > (.*) tu wpychamy całą resztę tekstu
    >
    > i teraz możemy sprawdzić
    >
    > jaki był pierwszy wiersz
    >
    > >>> m.group(1)
    > u'ahjklsl'
    >
    > ile znaków końca linii było po pierwszym wierszu
    > >>> len(m.group(2))
    > 3
    > >>> m.group(2)
    > u'\n\n\n'
    >
    > czy w tekście było coś jeszcze
    > >>> len(m.group(3))
    > 37
    > >>> m.group(3)
    > u'ajkshgjkgh\n\n\nhsajhkjhskj\n\n\nhnajkhjhjl'

    ok, tnx w sumie ten plik przerobilem sobie programikiem w c

    #include "green-fire.h"



    int main()
    {
    chunk file = LoadChunk("file.txt");

    int len = ChunkLength(file);

    FILE *f = fopen("tile_out.txt", "wb");

    for(int i=0; i<len; i++)
    {
    if(file.beg[i]==0xa && file.beg[i+1]==0xa) continue;

    fputc(file.beg[i], f);
    }

    fclose(f);

    return 2020;

    }
    poki co costam dziala ale czas odpoczac

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: