Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import re # biblioteka do wyszukiwania/zastępowania ciągów znaków
- def zwroc_wartosc_zmieniona_o_procent(wartosc_wejsciowa, procent):
- """
- ta funkcja zwraca x% wartosci
- (podaj -0.05 aby zwiekszyc o 5% albo 0.29 aby zwiekszyc o 29 %)
- """
- wartosc_wyjsciowa = float(wartosc_wejsciowa) * abs(float(procent))
- print(wartosc_wejsciowa, procent, int(wartosc_wyjsciowa))
- return int(wartosc_wyjsciowa)
- def zwroc_nta_wartosc(string,n):
- """
- ta funkcja zwraca nte wystąpienie ciągu cyfr
- """
- if len(re.findall(r"\d+",string))>0:
- return int(re.findall(r"\d+",string)[n])
- def zapisz_do_pliku(nazwa_pliku, zawartosc):
- """
- ta funkcja zapisuje podaną zawartość do danego nazwa_pliku
- należy podać nazwę pliku wraz z rozszerzeniem
- """
- with open (nazwa_pliku,"w") as f:
- f.write(zawartosc)
- def zastap_wartosci(dokument_wejsciowy, dokument_wyjsciowy, znacznik, procent):
- """
- ta funkcja ładuje dokument wejściowy, przechodzi po każdej linijce i zamienia
- każdą wartość oznaczoną znacznikiem na x% tej wartości. czyli np. 0.50 z 220 = 110
- na koncu zapisuje do wskazanego pliku wyjsciowego
- """
- nowa_zawartosc = ""
- with open(dokument_wejsciowy, "r") as dokument:
- for linijka in dokument:
- if len(re.findall("<%s>\d+</%s>" % (znacznik, znacznik), linijka)) >= 1:
- #nowa_zawartosc += re.sub("<%s>\d+</%s>" % (znacznik, znacznik), r'<%s>%s</%s>')
- pattern = r"<%s>\d+</%s>" % (znacznik, znacznik)
- repl = r'<%s>%s</%s>' % (znacznik,zwroc_wartosc_zmieniona_o_procent(zwroc_nta_wartosc(linijka,1), procent), znacznik)
- nowa_zawartosc += re.sub(pattern, repl, linijka, flags = re.M)
- else:
- nowa_zawartosc += linijka
- zapisz_do_pliku(dokument_wyjsciowy, nowa_zawartosc)
- if __name__ == "__main__":
- zastap_wartosci(dokument_wejsciowy="input.tcx", dokument_wyjsciowy="output.tcx", znacznik="ns3:Watts", procent = 1.20 )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement