How many papers have been implemented in OpenCV?

#!/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)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值