472,142 Members | 1,050 Online
Bytes | Software Development & Data Engineering Community
Post +

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 472,142 software developers and data experts.

Looping a script

16
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
Aug 5 '07 #1
6 4521
ilikepython
844 Expert 512MB
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.:
Expand|Select|Wrap|Line Numbers
  1. while 1:
  2.     text = open("c:\\file.txt").read()
  3.     v = text.count('word')
  4.     if v > 2:
  5.         print "has words"
  6.     text.close()
  7.     time.sleep(10)
  8.  
Aug 5 '07 #2
T00l
16
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)
Aug 7 '07 #3
T00l
16
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
Aug 7 '07 #4
ilikepython
844 Expert 512MB
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:
Expand|Select|Wrap|Line Numbers
  1. import thread
  2. def wordcount():
  3.     while 1:
  4.         text = open("c:\\dir\\file.txt").read()
  5.         v = text.count('word')
  6.         if v > 2:
  7.             print "has words"
  8.         text.close()
  9.         time.sleep(10)
  10.  
  11. def recv_pkts(hdr, data):
  12.     x = EthDecoder().decode(data)
  13.     sys.stdout = open('c:\\dir\\file.txt', 'a')
  14.     print x
  15.  
  16.  
  17. def get_int():
  18.     devs = pcapy.findalldevs()
  19.     for (i, eth) in enumerate(devs):  # no need for extra variable
  20.         print " %d - %s" %(i,devs[i])
  21.  
  22.     sel=input(" Select interface: ")
  23.     dev=devs[sel]
  24.     return dev
  25.  
  26. dev = get_int()
  27. p = pcapy.open_live(dev, 1500, 0, 100)
  28. p.setfilter('tcp')
  29. print "Listening on eth: net=%s, mask=%s\n" % (p.getnet(), p.getmask())
  30. thread.start_new_thread(wordcount, ())
  31. p.loop(-1, recv_pkts)
  32.  
Aug 7 '07 #5
T00l
16
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?
Aug 7 '07 #6
ilikepython
844 Expert 512MB
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.
Aug 7 '07 #7

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
5 posts views Thread by Jeff | last post: by
6 posts views Thread by Luke - eat.lemons | last post: by

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.