python 對以空行作爲分割的塊文件進行讀取的方法

這幾天一直在處理數據,也接觸到了好幾款不一樣的庫,pandas雖然好用但是卻沒有直接處理空行分塊的txt文件,所以只能自己手寫腳本對文件進行分塊讀取,然後每一塊的信息存儲爲csv文件的一行。我處理的對象爲DBLP的數據集,地址是http://cn.aminer.org/citation  採用的是v1數據集。

需要將形如#c,#!等分別代表的不同意思的信息提取出來

數據的格式如下;


數據每塊的含義參見數據集主頁給出的說明。

def exact_edges(path1,path2):
    a = open(path1,'r')
    file = a.read().splitlines()
    b = open(path2,'wb')
    csv_file2 = csv.writer(b)
    KDD = 'ACM SIGKDD international conference on Knowledge discovery and data mining'
    SIGIR = 'international ACM SIGIR conference on Research and development in information retrieval'
    i = 0
    num = 0
    while True:
        list = []
        flag = 0
        if num != 0:#對讀取的file進行刪除操作,讀取完成的部分將在下一塊讀取之前刪除掉
            for x in range(0,num):
                file.pop(0)
        num = 0
        for line in file:
            num = num+1
            if len(line) > 0:
                if line.startswith('#index'):
                    print line
                    list.append(line)
                if line.startswith('#%'):
                    print line
                    list.append(line)
                if line.startswith('#c'):
                    '''print line
                    if ('conference on Knowledge discovery and data mining' in str(line)) or (
                    'international ACM SIGIR conference on Research and development in information' in line):
                        print '...................'
                        flag = 1'''
                    list.append(line)
                if line.startswith('#!'):
                    list.append(line)
            else:
                #print '................................'
                break
csv_file2.writerow(list)