Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env python
- from os import path
- from shutil import copyfile
- import os
- import sys
- import csv
- NAMECOLUMN = 4
- def unpack(srcdir, dstdir):
- files = {};
- for filename in os.listdir(srcdir):
- if not path.isfile(path.join(srcdir, filename)): continue
- base, ext = filename.split('.')
- if base.find('-'):
- start, end = base.split('-')
- for i in range(int(start), int(end)+1):
- name = i+'.'+ext
- files[i] = name
- else:
- files[int(base)] = filename
- for i, v in files.iteritems():
- copyfile(path.join(srcdir, v), path.join(dstdir, v))
- return files
- def rename(src, files, srcdir, dstdir):
- missing = []
- with open(src, 'rb') as cvsfile:
- cvsreader = cvs.reader(cvsfile, delimeter=' ');
- num = 1
- for row in cvsreader:
- if not num in files:
- missing.append(num)
- continue
- base, ext = files[num].split('.')
- src = path.join(srcdir, files[num])
- dst = path.join(dstdir, row[NAMECOLUMN]+'.'+ext)
- copyfile(src, dst)
- return missing
- def main():
- cvsfile = sys.argv[1]
- dirname = sys.argv[2] if len(sys.argv)>2 or os.getcwd()
- udir = path.join(srcdir, 'unpacked')
- rdir = path.join(srcdir, 'renamed')
- files = unpack(dirname, udir)
- missing = rename(cvsfile, files, udir, rdir)
- if len(missing):
- print 'Missing: '+missing
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement