Strona 1 z 1

Python - wyszukiwanie tekstu z pliku

: 20 grudnia 2016, 18:28
autor: cloudb
WItam, program ma sprawdzać, czy dane urządzenie jest zalogowane do sieci.
Jednak mój kod wykonuje zawsze warunek True, dlaczego?

Kod: Zaznacz cały

import os
os.system("ping -c 1 192.168.1.103 > ping.txt")
string=open("ping.txt", "r").read()
"ms= in string
if True: 
	print "ok"
else:
	print"urzadzenie nie odpowiada"


Re: wyszukiwanie tekstu z pliku

: 20 grudnia 2016, 19:20
autor: dedito
Nie znam zbytnio Pythona, ale ten cudzysłów przy ms raczej nie powinien występować.
Dodatkowo nie wiem co ty tam sprawdzasz w warunku if, bo nigdzie wcześniej nie widzę sprawdzanej zmiennej.
Podejrzewam, że chcesz sprawdzać, czy jakiś tekst występuje w pliku do którego wyrzuciłeś wynik pinga.

Re: wyszukiwanie tekstu z pliku

: 20 grudnia 2016, 19:46
autor: cloudb
Nie zamknąłem cudzyslowia przy przepisywaniu, ale to nie to. Cudzysłów zamienia wartości liczbowe na string.

Re: wyszukiwanie tekstu z pliku

: 20 grudnia 2016, 20:32
autor: dedito
A co z resztą?

Re: wyszukiwanie tekstu z pliku

: 21 grudnia 2016, 07:10
autor: cloudb
Jaką "resztą"?

Re: wyszukiwanie tekstu z pliku

: 21 grudnia 2016, 07:18
autor: dedito
Przeczytaj jeszcze raz uważnie wiadomość nr 2.
dedito pisze:Dodatkowo nie wiem co ty tam sprawdzasz w warunku if, bo nigdzie wcześniej nie widzę sprawdzanej zmiennej.
Podejrzewam, że chcesz sprawdzać, czy jakiś tekst występuje w pliku do którego wyrzuciłeś wynik pinga.

Re: wyszukiwanie tekstu z pliku

: 21 grudnia 2016, 12:48
autor: pawkrol
Musi być to python, bo mam coś podobnego ale w bash.

Re: wyszukiwanie tekstu z pliku

: 21 grudnia 2016, 14:01
autor: cloudb
Musi, ale pokaż co masz. Może naprowadzi mnie to na mój błąd.

Re: wyszukiwanie tekstu z pliku

: 21 grudnia 2016, 16:05
autor: pawkrol

Kod: Zaznacz cały

#!/bin/bash
ip=192.168.50.109
if ping -c 1 -w 2 $ip &> /dev/null
	then
		echo "Stacja wlaczona"
	else
		echo "Stacja wylaczona"
fi

Re: Python - wyszukiwanie tekstu z pliku

: 29 stycznia 2017, 23:45
autor: cloudb
zrobiłem podobnie, ping po spingowaniu daje na wyjściu 0 lub 1 i wystarczy to sprawdzać.
Niemniej aplikacja wymaga jeszcze zwiększenia użyteczności
jak to zrobić, by równocześinie pingować kilka urządzeń?
wiem, że trzeba zaimportować "thread", ale jak to zrobić?
mniej więcej program powinien wyglądać tak.

Kod: Zaznacz cały

import os
import time
 
def jeden():
   jeden=os.system("ping -c 3 -i 0.2 192.168.1.2 > jeden.txt")
   if jeden==1:
     print "alarm jeden"
 
def dwa():
   dwa=os.system("ping -c 3 -i 0.2 192.168.1.3 > dwa.txt")
   if dwa==1:
     print "alarm dwa"
 
whilte True:
   jeden()
   dwa()

Więc-jak uruchomić równocześnie te dwie funkcje a nie jedna po drugiej?