Well, os.listdir doesn't include "." or ".." anyway as you can see here <http://docs.python.org/library/os.html#os.listdir>
So, just a simple    len(os.listdir(my_directory))    will suffice..

A couple more points:
-It's better looking and more readable (to me that means Pythonic) to store that ugly path to a variable first. -Whenever you see yourself repeating a chunk of code, make a function out of it!


So, your program now is
------------------------------
import os, time

my_directory = '/Volumes/sgtb/lac/comps/Z353_002/renders/Z353_002_comp/Z353_002_comp_v04/2048x1556'

while len(os.listdir(my_directory)) <= 8:
  print 'waiting'
  time.sleep(5)
  print 'still waiting'
  time.sleep(5)

print 'eight'
-------------------------------


Nick (also, this is my first post)

pedro wrote:
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'


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to