2017-02-08 5 views
0

私はwikipediaページ(t、s、u、li、i)の各属性の列を含むファイル出力cvsを書くために、以下のコードを修正しています。ウィキペディアのページを解析している列でCsvを書く

正しい出力を得るにはどうすればよいですか?

import csv 
import wikipedia 

wikipedia.set_lang('it') 
fileout=open('D:\\GIS\\Dati\\Vinca\\out.csv', 'w', encoding="utf8") 
with open('D:\\GIS\\Dati\\Vinca\\specie_vinca_min.csv', 'rt', encoding="utf8") as f: 
    reader = csv.reader(f) 
    writer = csv.writer(fileout) 
    for row in reader: 
     try: 
      wikipage = wikipedia.page(row[0], auto_suggest=False) 
      t=wikipage.title 
      s=wikipage.summary 
      u=wikipage.url 
      li=len(wikipage.images) 
      i=wikipage.images[0] 
      tot=t, s, u, li, i 
      writer.writerow(tot) 
     except wikipedia.exceptions.PageError: 
     #if a "PageError" was raised, ignore it and continue to next link 
      continue 
      fileout.close() 
      f.close() 

出力が集計されていません。 enter image description here

+0

あなたは何の問題がありますか?エラー出力は何ですか? – nitimalh

+0

出力は集計されていないので、私のGis作業に使用するのに問題があります。問題のスクリーンショットを見てください! –

+0

CSVライターはデフォルトでカンマを使用します。なぜあなたのコードは "表形式"と書くべきだと思いますか? –

答えて

1

私は解決策を見つけました。

Wikipedia.summary出力には列で問題が発生したものが多く含まれています。 st=s.replace('\n',' ')を追加して、問題を削除しました。 今私は右の列のテーブルを持っています。

import csv 
import wikipedia 

wikipedia.set_lang('it') 
fileout=open('D:\\GIS\\Dati\\Vinca\\out1.csv', 'w', encoding="utf8") 
with open('D:\\GIS\\Dati\\Vinca\\specie_vinca_min.csv', 'rt', encoding="utf8") as f: 
    reader = csv.reader(f) 
    writer = csv.writer(fileout, delimiter='|') 
    for row in reader: 
     try: 
      wikipage = wikipedia.page(row[0], auto_suggest=False) 
      t=wikipage.title 
      s=wikipage.summary 
      st=s.replace('\n',' ') 
      u=wikipage.url 
      li=len(wikipage.images) 
      i=wikipage.images[0] 
      tot= t,st,u, li, i 
      writer.writerow(tot) 
     except wikipedia.exceptions.PageError: 
     #if a "PageError" was raised, ignore it and continue to next link 
      continue 
      fileout.close() 
      f.close() 
関連する問題