用解析wikipedia页面的列编写Csv

2024-04-25 01:08:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试更正下面的代码,无结果,编写一个文件输出cvs,其中包含wikipedia页面(t,s,u,li,I)的每个属性的列。在

如何更改它以获得正确的输出?在

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


Tags: csvimportitliopenutf8wikipediaencoding
1条回答
网友
1楼 · 发布于 2024-04-25 01:08:14

我找到了解决办法。在

在维基百科摘要输出包含许多\n造成列问题的内容。 添加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()

相关问题 更多 >