[Tutor] monitor number of files in a folder

pedro pedrooconnell at gmail.com
Thu Aug 6 22:45:02 CEST 2009


On 2009-08-06 15:49:35 -0400, Wayne <srilyk at gmail.com> said:

> 
> 
> On Thu, Aug 6, 2009 at 2:33 PM, pedro <pedrooconnell at gmail.com> wrote:
> 
>> Hi I am rendering image sequences on a basic render farm that I am
>> building. Once all the files in the sequence have been rendered I would like
>> to make a quicktime of the sequence automatically. The problem I am having
>> is that if one of the computers on the farm is rendering slow the quicktime
>> gets made before all the files are rendered.
>> 
>> The variable below called "theNumberOfImages" is the actual # of images
>> that have been rendered which is working fine.
>> The variable below called "theNumberOfFrames" is the total # of images that
>> are supposed to be rendered. What I am trying to do but am not sure how is
>> to say:
>> As soon as theNumberOfImages is equal to or greater than theNumberOfFrames,
>> render the quicktime.
>> 
>> Here is my very bad solution
>> 
>> if theNumberOfImages <= theNumberOfFrames:
>> time.sleep(60)
>> if theNumberOfImages <= theNumberOfFrames:
>> time.sleep(60)
>> if theNumberOfImages <= theNumberOfFrames:
>> time.sleep(60)
>> else:
>> os.system('/Volumes/sgtb/lac/common/temp/theQuicktimeCommandTest.sh')
> 
> 
> You really just want a  while loop:
> 
> while imagecount >= framecount:
>     time.sleep(60)
> 
> # Call script here
> 
> I guess that's the easiest way. Probably not the most effective, but I'm not
> sure if the implementation of an alternate solution would be worth the cost.
> 
> HTH,
> Wayne
> 
> 
> <br><br><div class=3D"gmail_quote">On Thu, Aug 6, 2009 at 2:33 PM, pedro <s=
> pan dir=3D"ltr">&lt;<a href=3D"mailto:pedrooconnell at gmail.com">pedrooconnel=
> l at gmail.com</a>&gt;</span> wrote:<br><blockquote class=3D"gmail_quote" styl=
> e=3D"border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; =
> padding-left: 1ex;">
> 
> Hi I am rendering image sequences on a basic render farm that I am building=
> . Once all the files in the sequence have been rendered I would like to mak=
> e a quicktime of the sequence automatically. The problem I am having is tha=
> t if one of the computers on the farm is rendering slow the quicktime gets =
> made before all the files are rendered.<br>
> 
> 
> <br>
> The variable below called &quot;theNumberOfImages&quot; is the actual # of =
> images that have been rendered which is working fine.<br>
> The variable below called &quot;theNumberOfFrames&quot; is the total # of i=
> mages that are supposed to be rendered. What I am trying to do but am not s=
> ure how is to say:<br>
> As soon as theNumberOfImages is equal to or greater than theNumberOfFrames,=
>  render the quicktime.<br>
> <br>
> Here is my very bad solution<br>
> <br>
> if theNumberOfImages &lt;=3D theNumberOfFrames:<br>
>  =A0 time.sleep(60)<br>
>  =A0 if theNumberOfImages &lt;=3D theNumberOfFrames:<br>
>  =A0 =A0 =A0 time.sleep(60)<br>
>  =A0 =A0 =A0 if theNumberOfImages &lt;=3D theNumberOfFrames:<br>
>  =A0 =A0 =A0 =A0 =A0 time.sleep(60)<br>
> else:<br>
>  =A0 os.system(&#39;/Volumes/sgtb/lac/common/temp/theQuicktimeCommandTest.s=
> h&#39;)</blockquote><div><br>You really just want a=A0 while loop:<br>=A0<b=
> r>while imagecount &gt;=3D framecount:<br>=A0=A0=A0 time.sleep(60)<br><br>#=
>  Call script here<br>
> 
> <br>I guess that&#39;s the easiest way. Probably not the most effective, bu=
> t I&#39;m not sure if the implementation of an alternate solution would be =
> worth the cost.<br><br>HTH,<br>Wayne<br></div></div><br>
> 
> 
> 
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor

I got it working but it seems little clunky. If I have a folder with 6 
files in it, python will print out "waiting, still waiting, waiting, 
still waiting..." if I add 3 new file to the folder python prints 
"eight". This is the basic behaviour I want but is there a more 
pythonic way to write this.



import os, time

theFilesAsList = []

for anItem in 
os.listdir('/Volumes/sgtb/lac/comps/Z353_002/renders/Z353_002_comp/Z353_002_comp_v04/2048x1556'):
 

   if anItem[0] != ".":
        theFilesAsList.append(anItem)
theNumberOfImages = len(theFilesAsList)

while theNumberOfImages <= 8:
    print 'waiting'
    time.sleep(5)
    print 'still waiting'
    time.sleep(5)
    theFilesAsList = []
    for anItem in 
os.listdir('/Volumes/sgtb/lac/comps/Z353_002/renders/Z353_002_comp/Z353_002_comp_v04/2048x1556'):
 

       if anItem[0] != ".":
            theFilesAsList.append(anItem)
    theNumberOfImages = len(theFilesAsList)
print 'eight'




More information about the Tutor mailing list