On 04/28/2013 08:59 PM, Dave Angel wrote:
On 04/28/2013 08:54 PM, mike wrote:
On 04/28/2013 07:37 PM, Dave Angel wrote:
On 04/28/2013 08:17 PM, mike wrote:

    <SNIP>


def sync_new():
     durFind = raw_input("Enter the duration of time in days you
want to
link")
     durFind = int(durFind)
     fileExcl = "*torrent*"
     linkNew = ['find', '%s' % musicDir, '-maxdepth 2', '-mtime %s' %
durFind, '-not', '-name', '%s' % fileExcl, '-exec addsync {} \;']
     subprocess.call(linkNew)

        <SNIP>

Running the script with the pushnew argument results in the following
error from find:

find: unknown predicate `-maxdepth 2'

I'm thinking this is also related to my usage of subprocess? I just
started carving this out right now so I'm still debugging but if anyone
sees anything obvious I would appreciate it.


Your linkNew list doesn't have separate items for each argument to find.
  The first example is that "-maxdepth" and "2" should be separate list
items.  The only other spot I notice is the -exec item, which should be
distinct from the following.

I don't understand why you have things like '%s' % musicDir, when
musicDir is already a string.  That list item should be just musicDir,
which would read much better.


I separated the maxdepth argument with '-maxdepth', '2', seems and now
it is focusing on the exec portion which i'm trying to figure out how to
separate and make it sane as far as single/double quotes go.

If I were sure enough about the syntax to find (I only use -exec about
once a year, and have to look it up each time), I could be explicit.

But if you want   -exec addsync {}
you should be using 3 different list items.

I don't think the \; means anything useful since you're not using the
shell.  But if find needs a semicolon there somehow, I might try just ";"

Could you show us exactly what the find command would look like if you
were executing it at the bash shell prompt?



Can you elaborate on what you mean regarding the musicDir variable? I
have a loadDir which specifies where the symlinks reside but the actual
root of the media directory is /opt/data/music and it's organized via
directories based on genres which is why I am specifying musicDir
instead of loadDir for this function


Simple.  Since musicDir is a string,
     "%s" % musicDir
is a verbose way of saying
      musicDir

Likewise for fileexecl.  Neither is an error, just confusing.



I didn't see your response dave, this would be the full syntax:



find /opt/data/music -maxdepth 2 -mtime -5 -not -name "*torrent*" -exec addsync {} \;


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to