Strona 1 z 1

python - wrzucanie do bazy sqlite z przyrastającego pliku.

: 08 lutego 2017, 15:39
autor: sethiel
Mam plik airodump-02.kismet.netxml, który jest przetwarzany i wrzucany do bazy sqlite.
Natomiast plik ten przyrasta non stop. Więc czy można coś zrobić (co?) aby plik został przetworzony a następnie wciąż był "open" i aby skrypt czekał aż się coś pojawi, a gdy się pojawi to - pac - do bazy danych?

Kod: Zaznacz cały

#!/usr/bin/python
import sqlite3, sys
from bs4 import BeautifulSoup
xmlDom = BeautifulSoup( open('airodump-02.kismet.netxml','r').read() )
location = sys.argv[3]

connection = sqlite3.connect(sys.argv[2])

for network in xmlDom.findAll('wireless-network') :
    essid = network.find('essid').text
    if not essid:
      essid = '-hidden-essid-'
    channel = network.find('channel').text
    bssid = network.find('bssid').text
    encryption = network.find('encryption').text
    print essid, channel, bssid, encryption
    connection.execute("insert into networks (location, essid, macaddr, channel, encryption) values (?,?,?,?,?)", (location, essid, bssid, chanel, encryption) )
    connection.commit
    counter += 1

connection.close()
ps. o co chodzi w pętli for? (w sensie gdzie i dlaczego on się kończy?) jak uruchamiam skrypt to tak jakby się kończył na counter+=1, ale skąd for to wie? Dlaczego nie kończy się na connection.close(), albo wcześniej np po pierwszym if?
ps2. to mój pierwszy skrypt przepisany z filmu na youtube więc mój poziom doświadczenia na razie jest w okolicach zera.

Re: python - wrzucanie do bazy sqlite z przyrastającego pliku.

: 08 lutego 2017, 18:30
autor: dedito
W Pythonie wcięcia definiują bloki programu (nie ma "klamerek" czy innych separatorów znanych z innych języków).
W Pythonie wcięcia są niezbędne do poprawnego działania kodu (w odróżnieniu od innych języków gdzie służą jedynie większej czytelności).

Re: python - wrzucanie do bazy sqlite z przyrastającego pliku.

: 09 lutego 2017, 09:44
autor: sethiel
Dziękuję pięknie. W życiu bym się nie spodziewał.

Re: python - wrzucanie do bazy sqlite z przyrastającego pliku.

: 09 lutego 2017, 14:12
autor: dedito
W takim razie proszę oznaczyć wątek i zamykamy.

Re: python - wrzucanie do bazy sqlite z przyrastającego pliku.

: 09 lutego 2017, 15:41
autor: sethiel
Hm, ale odpowiedź mam tylko na postscriptum a nie na podstawowe pytanie, czyli czyli jak podłączyć się do pliku, czekać i przetwarzać to co do niego wpada.