2016-04-22 106 views
0

每個人。我完成了在我的csv文件的前4列中的4個屬性(publicationtitle,publicationurl,publicationdate,publicationdescription)以及下面的詳細信息。我怎樣才能開始將在接下來的3列其他3個屬性及其詳細信息在輸出csv文件。(正如你可以看到,第一個4個屬性和第二3個屬性都來自不同的循環體系)python csv輸出與特定列

import csv 
from bs4 import BeautifulSoup 

fconn=open('D:\\Resumes\\Resume1.html') 
html=fconn.read() 
fconn.close() 

tree=BeautifulSoup(html) 

publication=tree.findAll('div',{'class':'publication-section'}) 
with open('D:\\ResumesClassification\\test.csv', 'wb') as csvfile: 
publicationwriter=csv.writer(csvfile,dialect='excel') 
publicationwriter.writerow(['publicationtitle']+['publicationurl']+['publicationdate']+['publicationdescription']) 
for i in publication: 

    publicationtitle=i.find('p',{'class':'publication_title'}) 
    if publicationtitle!=None: 
     publicationtitle=publicationtitle.text 
     publicationtitle=publicationtitle.encode('ascii','ignore') 
    else: 
     publicationtitle="publication title not metioned"  
    ......  
    publicationwriter.writerow([publicationtitle,publicationurl,publicationdate,publicationdescription])    

workexperience=tree.findAll('div',{'class':'work-experience-section'}) 
for i in workexperience: 
.....(just like the publication stuff, there are titles, dates and descriptions) 
+0

在你的兩個循環中建立一個字典,然後使用[csv.dictwriter()](https://docs.python.org/2/library/csv。 html#csv.DictWriter)寫入文件 – SiHa

回答

1

看看這個鏈接可以幫助 How to add a new column to a CSV file using Python?

一個建議是,如果你知道你需要多少列投入csv文件,然後構造列表列表或字典變量,來存儲每一個你所有的結果循環,並在腳本的末尾,編寫for循環或使用DictWriter將其輸出到您的csv文件。此鏈接可能有所幫助。 https://docs.python.org/2/library/csv.html#csv.DictWriter

例如(僞碼):

my_csv_dict = { '酒館':[], 'work_exp'= []}

爲元件在publication_records: my_csv_dict [ '酒館']。追加(元件)

爲元件在work_experience_records: my_csv_dict [ 'work_exp']追加(元件)

csv_file = csv.DictWriter(file_pointer,字段名=米y_csv_dict.keys()) csv_file.writerows(my_csv_dict)