singlemv

Feb 01, 2010 07:19

Собственно, вот оно. Особых фич нет, но то, что должно делать - делает.

#!/usr/bin/python
# GPL
import sys,os, cPickle

#minimalistic command line:
#1st argument - memory file
#2nd - pre-last - files to be moved
#last - destignation (where to be moved)

def singlemv(memory,from_list,to):
#return new memory mode
to_move=frozenset(from_list) - memory
errors=set()
for f in to_move:
try:
os.rename(f, os.path.join(to,os.path.basename(f)))
except:
print "error move %s to %s", f, to
errors.add(f)
return memory|(to_move-errors)

def __main__():
if len(sys.argv)<4:
print "Usage: singlemv.py memory_file from to"
exit(-1)
try:
memory_file=file(sys.argv[1],"r")
memory=cPickle.load(memory_file)
memory_file.close()
if type(memory) != type (frozenset()):
print "bad memory file"
exit(1)
except IOError, OSError:
memory=frozenset()
newmem=singlemv(memory,sys.argv[2:-1],sys.argv[-1])
memory_file=file(sys.argv[1],"w")
cPickle.dump(newmem,memory_file)
memory_file.close()

__main__()
Previous post Next post
Up