Hi
I have the following script that counts the amount of words in a file, prints an output, closes the file and then waits for 10secs. I need the script to repeat itself after it was waited the 10secs, anyone know how I can do this?
import time
text = open("c:\\file.txt").read()
v = text.count('word')
if v > 2:
print "has words"
text.close()
time.sleep(10)
Thanks
6 4521
Hi
I have the following script that counts the amount of words in a file, prints an output, closes the file and then waits for 10secs. I need the script to repeat itself after it was waited the 10secs, anyone know how I can do this?
import time
text = open("c:\\file.txt").read()
v = text.count('word')
if v > 2:
print "has words"
text.close()
time.sleep(10)
Thanks
Are you familiar with loops? Check some tutorials online if not.: -
while 1:
-
text = open("c:\\file.txt").read()
-
v = text.count('word')
-
if v > 2:
-
print "has words"
-
text.close()
-
time.sleep(10)
-
Hi
Thanks for the reply, i'm learning python/programming from a couple of books but couldn't see that anywhere, however after your post and looking in the books again, its staring me in the face!
Now that I have that loop going, I want to add it to an existing looping script. However the first loop is continuous so the program does not seem to be executing my second loop code, can you tell me if there is a better loop than the p.loop for the first section of code to allow it (While still looping) to continue and execute the second loop part of code?
import sys
import pcapy
import time
import time
from impacket.ImpactDecoder import *
def recv_pkts(hdr, data):
While 1:
x = EthDecoder().decode(data)
sys.stdout = open('c:\\dir\\file.txt', 'a')
print x
def get_int():
devs = pcapy.findalldevs()
i=0
for eth in devs:
print " %d - %s" %(i,devs[i])
i+=1
sel=input(" Select interface: ")
dev=devs[sel]
return dev
dev = get_int()
p = pcapy.open_live(dev, 1500, 0, 100)
p.setfilter('tcp')
print "Listening on eth: net=%s, mask=%s\n" % (p.getnet(), p.getmask())
p.loop(-1, recv_pkts)
while 1:
text = open("c:\\dir\\file.txt").read()
v = text.count('word')
if v > 2:
print "has words"
text.close()
time.sleep(10)
Sorry, the while: 1 on line 8 should not be there, the function is
def recv_pkts(hdr, data):
x = EthDecoder().decode(data)
sys.stdout = open('c:\\dir\\file.txt', 'a')
print x
Hi
Thanks for the reply, i'm learning python/programming from a couple of books but couldn't see that anywhere, however after your post and looking in the books again, its staring me in the face!
Now that I have that loop going, I want to add it to an existing looping script. However the first loop is continuous so the program does not seem to be executing my second loop code, can you tell me if there is a better loop than the p.loop for the first section of code to allow it (While still looping) to continue and execute the second loop part of code?
import sys
import pcapy
import time
import time
from impacket.ImpactDecoder import *
def recv_pkts(hdr, data):
x = EthDecoder().decode(data)
sys.stdout = open('c:\\dir\\file.txt', 'a')
print x
def get_int():
devs = pcapy.findalldevs()
i=0
for eth in devs:
print " %d - %s" %(i,devs[i])
i+=1
sel=input(" Select interface: ")
dev=devs[sel]
return dev
dev = get_int()
p = pcapy.open_live(dev, 1500, 0, 100)
p.setfilter('tcp')
print "Listening on eth: net=%s, mask=%s\n" % (p.getnet(), p.getmask())
p.loop(-1, recv_pkts)
while 1:
text = open("c:\\dir\\file.txt").read()
v = text.count('word')
if v > 2:
print "has words"
text.close()
time.sleep(10)
I am not familiar with the pcapy module but you could try using threads: -
import thread
-
def wordcount():
-
while 1:
-
text = open("c:\\dir\\file.txt").read()
-
v = text.count('word')
-
if v > 2:
-
print "has words"
-
text.close()
-
time.sleep(10)
-
-
def recv_pkts(hdr, data):
-
x = EthDecoder().decode(data)
-
sys.stdout = open('c:\\dir\\file.txt', 'a')
-
print x
-
-
-
def get_int():
-
devs = pcapy.findalldevs()
-
for (i, eth) in enumerate(devs): # no need for extra variable
-
print " %d - %s" %(i,devs[i])
-
-
sel=input(" Select interface: ")
-
dev=devs[sel]
-
return dev
-
-
dev = get_int()
-
p = pcapy.open_live(dev, 1500, 0, 100)
-
p.setfilter('tcp')
-
print "Listening on eth: net=%s, mask=%s\n" % (p.getnet(), p.getmask())
-
thread.start_new_thread(wordcount, ())
-
p.loop(-1, recv_pkts)
-
Hi
Thanks for that, I haven't looked at threading before but will look into it further now.
I think the problem i'll have is that the def recv_pkts needs to run continually where as the def wordcount() needs to only run every 10 secs, it looks from the modiftication you have done the whole script will wait 10 secs?
Is this correct or have I got that wrong?
Hi
Thanks for that, I haven't looked at threading before but will look into it further now.
I think the problem i'll have is that the def recv_pkts needs to run continually where as the def wordcount() needs to only run every 10 secs, it looks from the modiftication you have done the whole script will wait 10 secs?
Is this correct or have I got that wrong?
Nope, that's the thing about threads, they run in parallel. The time.sleep call only works for its thread so the main script will keep on running and only the thread will sleep.
There is also a threading module that you can also use. Make sure to check the documentation for both modules to get a better understanding.
Post your reply Sign in to post your reply or Sign up for a free account.
Similar topics
8 posts
views
Thread by kaptain kernel |
last post: by
|
2 posts
views
Thread by Ivo |
last post: by
|
11 posts
views
Thread by Lyle Fairfield |
last post: by
|
5 posts
views
Thread by Jeff |
last post: by
|
2 posts
views
Thread by Bart Van Hemelen |
last post: by
|
1 post
views
Thread by Alex |
last post: by
|
6 posts
views
Thread by Luke - eat.lemons |
last post: by
| | | | | | | | | | | | | |