annotate python/randomize.py @ 752:e6fb1a8fe66b

add example for m3u playlists [status: unknown]
author Jeff Hammel <k0scist@gmail.com>
date Fri, 03 Jul 2015 14:33:01 -0700
parents 12299cbc45ee
children 08da6a1bb4c9
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
2
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
3 import os
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
4 import random
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
5 import subprocess
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
6 import sys
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
7
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
8 from optparse import OptionParser
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
9
249
12299cbc45ee update this awful program
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
10 """randomize a bunch of files"""
12299cbc45ee update this awful program
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
11
0
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
12 if __name__ == '__main__':
249
12299cbc45ee update this awful program
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
13 usage = '%prog [options] file_or_directory <...>'
12299cbc45ee update this awful program
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
14 parser = OptionParser(usage=usage, description=__doc__)
0
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
15 parser.add_option("-e", "--exec", dest="callable",
249
12299cbc45ee update this awful program
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
16 help="program to execute for each file")
12299cbc45ee update this awful program
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
17 options, argv = parser.parse_args()
12299cbc45ee update this awful program
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
18 if not argv:
12299cbc45ee update this awful program
Jeff Hammel <jhammel@mozilla.com>
parents: 0
diff changeset
19 argv = ['.']
0
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
20 args = []
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
21 for i in argv:
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
22 if os.path.isdir(i):
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
23 for root, dirs, files in os.walk(i):
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
24 args.extend([os.path.join(root, f) for f in files])
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
25 else:
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
26 args.append(i)
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
27 random.shuffle(args)
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
28 if options.callable:
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
29 for i in args:
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
30 subprocess.call([options.callable, i])
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
31 else:
f3ab51c79813 adding configuration from https://svn.openplans.org/svn/config_jhammel/
k0s <k0scist@gmail.com>
parents:
diff changeset
32 print '\n'.join(args)