OSDN Git Service

update imgfind.py to operate copy just in time.
authorhylom <hylom@hylom.net>
Tue, 18 Sep 2012 08:15:06 +0000 (17:15 +0900)
committerhylom <hylom@hylom.net>
Tue, 18 Sep 2012 08:15:06 +0000 (17:15 +0900)
imgfind.py

index 5597ce0..809a84f 100755 (executable)
@@ -2,29 +2,48 @@
 
 import re
 import os.path
+import sys
+import shutil
 
-fh_in = open("txt.txt", "r")
-#fh_out = open("mv.sh", "w")
-dir_from = "img_old"
-dir_dest = "img"
-rex_img1 = re.compile(r"^<(.*),\s*(.*)>\s*")
-rex_img2 = re.compile(r"^<(.*)>\s*")
-
-
-imgs = []
-for l in fh_in:
-    m1 = rex_img1.match(l)
-    m2 = rex_img2.match(l)
-
-    if m1:
-        imgs.append(m1.group(1))
-        imgs.append(m1.group(2))
-    elif m2:
-        imgs.append(m2.group(1))
-
-for f in imgs:
-    if not os.path.exists(os.path.join(dir_from, f)):
-        print "# %s/%s is not exists" % (dir_from, f)
-       print "# mv %s/%s %s/" % (dir_from, f, dir_dest)
-    else:
-        print "mv %s/%s %s/" % (dir_from, f, dir_dest)
+USAGE = '%s <from> <dest>' % os.path.basename(sys.argv[0])
+if len(sys.argv) < 3:
+    sys.exit(USAGE)
+
+def do_copy(frm, dst):
+    shutil.copy(frm, dst)
+
+def main():    
+    fh_in = open("txt.txt", "r")
+    #fh_out = open("mv.sh", "w")
+    dir_from = sys.argv[1]
+    dir_dest = sys.argv[2]
+    rex_img1 = re.compile(r"^<(.*),\s*(.*)>\s*")
+    rex_img2 = re.compile(r"^<(.*)>\s*")
+
+
+    imgs = []
+    for l in fh_in:
+        m1 = rex_img1.match(l)
+        m2 = rex_img2.match(l)
+
+        if m1:
+            imgs.append(m1.group(1))
+            imgs.append(m1.group(2))
+        elif m2:
+            imgs.append(m2.group(1))
+
+    for f in imgs:
+        target = os.path.join(dir_from, f)
+        dest = os.path.join(dir_dest, f)
+        if os.path.exists(dest):
+            print "%s is already exists. skip." % dest
+        elif not os.path.exists(target):
+            print "%s is not exists." % target
+        else:
+            #print "mv %s/%s %s/" % (dir_from, f, dir_dest)
+            print "copy %s to %s/" % (target, dir_dest)
+            do_copy(target, dir_dest)
+            
+
+if __name__ == '__main__':
+    main()