import os import sys import pickle import lmdb def wirte_to_lmbd(filename, outfilename): try: os.remove(outfilename) except: pass env_new = lmdb.open( outfilename, subdir=False, readonly=False, lock=False, readahead=False, meminit=False, max_readers=1, map_size=int(100e9), ) txn_write = env_new.begin(write = True) with open(filename, 'r') as input: i = 0 for line in input.readlines(): line = line.strip() if line: txn_write.put(f'{i}'.encode("ascii"), pickle.dumps(line)) i += 1 print('process {} lines'.format(i)) txn_write.commit() env_new.close() if __name__ == '__main__': wirte_to_lmbd(sys.argv[1], sys.argv[2])