Przekleństwo dla amatora i rozgrzewka dla programisty

0

Witam, jestem totalnym amatorem, który zajmuje się zupełnie inną dziedziną. Liznąłem trochę Pythona na studiach. Mam do napisania pewną pracę i zastanawiam się czy ktoś byłby w stanie napisać dla mnie bądź pomóc mi napisać skrypt, który wyciągnąłby tylko niektóre informacje z pliku tekstowego, którego fragment wygląda tak:

Budynek: 10/1;1
Pow. zabudowy 74
Pow. użytkowa lokali: 0
Nr. rej. zabytków:
Materiał ścian zew.: Mur
Rok zak. budowy: 1969
Całkowita ilość lokali:
Ilość lokali sprzedanych: 0
Rodzaj budynku: mieszkalne
Liczba kondygnacji nadziemn.: 1
Liczba kondygnacji podziemn.:

Budynek: 10/1;2
Pow. zabudowy 126
Pow. użytkowa lokali: 0
Nr. rej. zabytków:
Materiał ścian zew.: Mur
Rok zak. budowy: 1969
Całkowita ilość lokali:
Ilość lokali sprzedanych: 0
Rodzaj budynku: produkcyjne
Liczba kondygnacji nadziemn.: 1
Liczba kondygnacji podziemn.:

Potrzebuję wyciągnąć z niego tylko pierwszy wiersz o nazwie "Budynek:...." oraz "Rok zak. budowy:..." i połączyć je w jeden wiersz, bądź po prostu aby te informacje były obok siebie. Myślę, że dla kogoś kto wie coś o programowaniu nie jest to specjalne wyzwanie.

0

Nie jestem profesjonalistą, ale jako amator pewnie użyłbym wyrażeń regularnych ;D
Może dlatego, że są już stworzone i wystarczy dobry warunek i wyciągnie to co potrzeba z każdej linijki.

Python jest do tego stworzony, ale nikt ci do głowy nie zajrzy więc wszystko zależy od ciebie.

0

Mhm, mało mi to mówi, być może mówiąc, że liznąłem Pythona mocno przesadziłem, raczej powąchałem go.... No ale cóż, w każdym razie, dziękuję za odpowiedź.

1

Nie kombinowałem z tymi regexami, możesz je poprawić :)

import re

with open('tekst.txt','r',encoding='utf8') as f:
    text = f.read()
    print(re.findall(r"\bBudynek: .*", text))
    print(re.findall(r"\bRok zak. budowy: .*", text))

Oczywiście zamiast dummy printów wstaw to sobie w jakąś listę i gra muzyka.

0

W sumie to regexpy nie sa w tym wypadku az tak potrzebne ( takie troche bardziej amatorskie rozwiazanie) :

file =  open("plik.txt","r")
txt = ""
for line in file:
    if "Budynek:" in line:
        txt += line
    elif "Rok zak. budowy:" in line:
        txt += " " + line
        print(txt)
        txt = ""
0
Pipes napisał(a):

Oczywiście zamiast dummy printów wstaw to sobie w jakąś listę i gra muzyka.

Jak może grać muzyka jak to jest plik .txt?

1 użytkowników online, w tym zalogowanych: 0, gości: 1