diff rename.py @ 5:7c8b327f298c draft

planemo upload commit f565a59d3e28d34d1caf326fcee83d04a939c359
author yating-l
date Tue, 31 Jul 2018 13:50:21 -0400
parents e35a3509c160
children 2d143f0ac727
line wrap: on
line diff
--- a/rename.py	Thu Jul 26 15:46:24 2018 -0400
+++ b/rename.py	Tue Jul 31 13:50:21 2018 -0400
@@ -21,21 +21,22 @@
                     writer.writerow([oldname.encode('utf-8'), newname])
                 out.write(line)
 
-def truncate(inputFile, outputFile, valid_characters):
+def truncate(inputFile, outputFile, valid_characters, writer):
     names = []
-    with codecs.open(outputFile, 'w', encoding='utf-8') as out:
+    with open(outputFile, 'w') as out:
         with codecs.open(inputFile, 'r', encoding='utf-8') as rf:
             lines = rf.readlines()
             for l in lines:
                 if ">" in l:
                     print l.encode('utf-8')
-                    name = l[1:].rstrip()
-                    name = substituteNonAscii(name, valid_characters)
+                    oldname = l[1:].rstrip()
+                    name = substituteNonAscii(oldname, valid_characters)
                     if len(name) > 31:
                         name = name[:31]
                         print "\tTruncate the scaffold name to less than 31 characters: %s" % name
                     if name in names:
                         sys.exit("Name conflict! Name " + name + " already exist.")
+                    writer.writerow([oldname.encode('utf-8'), name])
                     names.append(name)
                     l = ">" + name + "\n"
                     print "======================\n"
@@ -54,14 +55,14 @@
     inputfile = str(sys.argv[1])
     manipulate = str(sys.argv[2])
     outputfile = str(sys.argv[3])
-    valid_characters = string.letters + string.punctuation + string.digits + ' '
+    indexfile = str(sys.argv[4])
+    csvfile = open(indexfile, 'w')
+    writer = csv.writer(csvfile)
     if manipulate == "rename":
-        indexfile = str(sys.argv[4])
-        csvfile = open(indexfile, 'w')
-        writer = csv.writer(csvfile)
         rename(inputfile, outputfile, writer)
     elif manipulate == "truncate":
-        truncate(inputfile, outputfile, valid_characters)
+        valid_characters = string.letters + string.punctuation + string.digits + ' '
+        truncate(inputfile, outputfile, valid_characters, writer)
 
 if __name__ == "__main__":
     main()