Luke Paireepinart wrote:
On Tue, Jul 7, 2009 at 8:36 PM, David <da...@pythontoo.com
<mailto:da...@pythontoo.com>> wrote:
Hi Tutors,
Hiya david. Cool e-mail address :)
Thanks, want l...@pythontoo.com I have a few to spare :)
But if there are no files in the directory it never gets to the else.
Right, if there are no files in the directory, then fobj will contain 0
items, so when the outer "for file in obj" loop iterates over it, there
will be no values for "file" to take.
One note - "file" is a builtin (probably deprecated in 3.0 but it's
still a builtin in 2.4) so you might not want to use it as filenames.
Maybe use "fname"? I think in later versions of Python file() is just
aliased to open(), or at least it has fewer features, so probably it
should be deprecated by now anyway. Just a thought.
Do you need help with adding this "no files" statement or would you like
to solve it yourself? I feel like your question was just to confirm
that there was nothing wrong with your code, and there isn't, you just
need to find the correct way to display this prompt. hint: if the "for"
loop isn't iterating over the items, you won't get to print this
message, but you also know that the length of the fobj file must be 0
items, right? Think of how you can use this to your advantage. :)
Ok, here is what I came up with;
#!/usr/bin/python
import commands
import os
from sys import exit
def clean_motion():
folder = '/var/log/motion'
if os.path.exists(folder):
fobj = os.listdir(folder)
if len(fobj) == 0:
print 'No files to clean.'
else:
fobj.sort()
for fname in fobj:
pathname = os.path.join(folder, fname)
if os.path.exists(pathname):
print 'removing... ', fname
os.remove(pathname)
if __name__ == "__main__":
if commands.getoutput( "whoami" ) != "root":
exit("\tYou must be root! Try again please.")
clean_motion()
--
Powered by Gentoo GNU/Linux
http://linuxcrazy.com
_______________________________________________
Tutor maillist - Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor