comparison dbkit_extract.py @ 3:03e124ff7e26 draft

"planemo upload commit bd03b7888eab0b010acfc3affd38bf4d4e2bb1ef-dirty"
author guerler
date Wed, 16 Dec 2020 13:11:35 +0000
parents 81c7d4668a7e
children
comparison
equal deleted inserted replaced
2:81c7d4668a7e 3:03e124ff7e26
1 #! /usr/bin/env python3 1 #! /usr/bin/env python3
2 import argparse 2 import argparse
3 from os import system
4 from os.path import getsize
5 3
6 from dbkit_package.DBKit import DBKit 4 from dbkit_package.DBKit import DBKit, writeEntry
7 5
8 6
9 def main(args): 7 def main(args):
10 logFile = open(args.log, "w") 8 logFile = open(args.log, "w")
11 outIndex = args.outindex 9 outputIndex = args.outputindex
12 outData = args.outdata 10 outputDatabase = args.outputdatabase
13 entries = list() 11 entries = list()
14 with open(args.list, "r") as f: 12 with open(args.list, "r") as f:
15 for line in f: 13 for line in f:
16 name = line.split()[0] 14 name = line.split()[0]
17 entries.append(name) 15 entries.append(name)
18 logFile.write("Detected %s entries.\n" % len(entries)) 16 logFile.write("Detected %s entries.\n" % len(entries))
19 tempFile = "temp.dat" 17 fileName = "temp.dat"
20 count = 0 18 count = 0
21 dbkit = DBKit(args.index, args.database) 19 dbkit = DBKit(args.index, args.database)
22 for entry in sorted(entries): 20 for entry in sorted(entries):
23 success = dbkit.createFile(entry, tempFile) 21 success = dbkit.createFile(entry, fileName)
24 if success: 22 if success:
25 currentSize = getsize(outData) 23 writeEntry(entry, fileName, outputIndex, outputDatabase)
26 entrySize = getsize(tempFile)
27 system("cat %s >> %s" % (tempFile, outData))
28 system("echo '%s\t%s\t%s' >> %s" % (entry, currentSize, entrySize, outIndex))
29 count = count + 1 24 count = count + 1
30 else: 25 else:
31 logFile.write("Entry %s not found.\n" % entry) 26 logFile.write("Entry %s not found.\n" % entry)
32 logFile.write("Extracted %s entries.\n" % count) 27 logFile.write("Extracted %s entries.\n" % count)
33 logFile.close() 28 logFile.close()
36 if __name__ == "__main__": 31 if __name__ == "__main__":
37 parser = argparse.ArgumentParser(description='DBKit - Merge database pair.') 32 parser = argparse.ArgumentParser(description='DBKit - Merge database pair.')
38 parser.add_argument('-l', '--list', help='List of entries to be extracted', required=True) 33 parser.add_argument('-l', '--list', help='List of entries to be extracted', required=True)
39 parser.add_argument('-i', '--index', help='Database Index file (ffindex)', required=True) 34 parser.add_argument('-i', '--index', help='Database Index file (ffindex)', required=True)
40 parser.add_argument('-d', '--database', help='Database Data file (ffdata)', required=True) 35 parser.add_argument('-d', '--database', help='Database Data file (ffdata)', required=True)
41 parser.add_argument('-oi', '--outindex', help='Output Index file', required=True) 36 parser.add_argument('-oi', '--outputindex', help='Output Index file', required=True)
42 parser.add_argument('-od', '--outdata', help='Output Data file', required=True) 37 parser.add_argument('-od', '--outputdatabase', help='Output Data file', required=True)
43 parser.add_argument('-g', '--log', help='Log file', required=True) 38 parser.add_argument('-g', '--log', help='Log file', required=True)
44 args = parser.parse_args() 39 args = parser.parse_args()
45 main(args) 40 main(args)