Python - 分配打印输出csv

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python - 分配打印输出csv相关的知识,希望对你有一定的参考价值。

我正在开发一个项目来抓取多个Twitter URL并将其关注者计数分配给csv:

username= ['LazadaPH','ZALORAPH','ShopeePH','eBayPhilippines','beauty_MNL']

for user in username:
   url = 'https://www.twitter.com/'+ user
   r = requests.get(url)
   soup = BeautifulSoup(r.content,'lxml')
   f = soup.find('li', class_="ProfileNav-item--followers")
   title = f.find('a')['title']
   num_followers = int(title.split(' ')[0].replace(',',''))
   print(user,num_followers)

输出如下:

LazadaPH 52841
ZALORAPH 29786
ShopeePH 7004
eBayPhilippines 874
beauty_MNL 2469

因为我对python很新(并且不希望问一个多余的问题):但是有人可以指导我如何将这个打印输出分配给csv的源和教程,并且必须将它提取到两列(列1是网站字符串,第2列是关注者计数)。

有什么建议?

谢谢你!

答案

你可以使用CSV module

例如:

import csv
with open('out.csv', 'w') as csvfile:
    r = csv.writer(csvfile, delimiter=',')     #   ----> COMMA Seperated
    for user in username:
       url = 'https://www.twitter.com/'+ user
       r = requests.get(url)
       soup = BeautifulSoup(r.content,'lxml')
       f = soup.find('li', class_="ProfileNav-item--followers")
       title = f.find('a')['title']
       num_followers = int(title.split(' ')[0].replace(',',''))
       r.writerow([user,num_followers])    #  ----> Adding Rows
另一答案

像这样制作你的打印声明:print(user,';',num_followers)它打印';'作为值的分隔符。然后将输出传递给文件:

python yourscript.py > yourcsv.csv 

以上是关于Python - 分配打印输出csv的主要内容,如果未能解决你的问题,请参考以下文章

尝试在Python中将集合的结果写入csv文件,但只打印一行

如何在 python 中打印 csv 文件中的记录总数?

如何从 csv 文件中为 python 中的图形打印特定单元格? [复制]

我的Android进阶之旅NDK开发之在C++代码中使用Android Log打印日志,打印出C++的函数耗时以及代码片段耗时详情

将CSV写为输出而不是打印

Python plotly 折线图 y 轴按从 CSV 读取的顺序打印,而不是按顺序打印