nephish wrote: > Hey there, > i have a simple question about getting a script to do > two things at once. > like this. > > > for i in range(100): > print i > time.sleep(.2) > if i == 15: > os.system('python /home/me/ipupdate.py') > > print 'done' > > when i run this, it stops at 15 and runs the script called out in the > os.system line. i know it is supposed to do that. But, how could i get a > script to do this without stopping the count (or delaying it unill the > script called exits)
One way to get a script to do two things 'at once' is to use threads. Threads are also a good way to introduce strange bugs into your program so you should do some reading about them. I can't find a good introduction - anyone else have a suggestion? Here is a brief one: http://www.wellho.net/solutions/python-python-threads-a-first-example.html Here are a couple of articles, not really introductory: http://linuxgazette.net/107/pai.html http://www.devshed.com/c/a/Python/Basic-Threading-in-Python/ Anyway here is something to get you started, this version of your program starts a new thread to do the os.system call, that way the main thread doesn't block. import os, threading, time def doSomething(): ''' This function will be called from the second thread ''' os.system('''python -c "from time import sleep;sleep(2);print 'hello'"''') for i in range(30): print i time.sleep(.2) if i == 10: print 'Starting thread' threading.Thread(target=doSomething).start() print 'done' Kent _______________________________________________ Tutor maillist - [EMAIL PROTECTED] http://mail.python.org/mailman/listinfo/tutor