#!/usr/bin/env python
# -*- coding: utf-8 -*-
'''
###########
Tool Description
Usage:
python getPaper.py [dir_path]
'''
import os
import fnmatch
import re
def iterfindfiles(path, fnexp):
for root, dirs, files in os.walk(path):
for filename in fnmatch.filter(files, fnexp):
yield os.path.join(root, filename)
def getPaper(dir_path):
# find bib files
files = []
for f in iterfindfiles(dir_path, "*.bib"):
files.append(f)
# read bib
papers = [] #paper = {"title":"", "year":0}
for f in files:
with open(f, 'r') as fid:
lines = fid.readlines()
record = ["", 0]
for line in lines:
line = line.split('\n')[0]
if 'title' in line and 'booktitle' not in line:
result = re.findall(ur'(?<=[\{(])[^\))]+(?=[\})])', line.split('\n')[0])
if len(result) != 0:
record[0] = result[0]
elif 'year' in line:
result = re.findall(ur'(?<=[\{(])[^\))]+(?=[\})])', line.split('\n')[0])
if len(result) != 0:
record[1] = eval(re.findall('[0-9]+', result[0])[0])
if record[0]!= "" and record[1] != 0:
papers.append({"title":record[0], "year":record[1]})
record = ["", 0]
# only title
if line == '}':
if record[0] != "":
papers.append({"title":record[0], "year": 0})
record = ["", 0]
return papers
def main(argv):
assert(len(argv) == 2)
papers = getPaper(argv[1])
papers = sorted(papers, key=lambda paper : paper.values()[0])
if not os.path.exists("paper_list.txt"):
with open("paper_list.txt", 'w') as fid:
for p in papers:
fid.write(str(p["year"]) + " " + p["title"] + '\n')
print "result saved in paper_list.txt"
if __name__ == "__main__":
print(__doc__)
import sys
main(sys.argv)
How many papers have been implemented in OpenCV?
最新推荐文章于 2020-12-08 21:58:58 发布