Mercurial > repos > guerler > dbkit
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) |