首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用pandas从网站抓取表格并保存为csv文件

使用pandas从网站抓取表格并保存为csv文件
EN

Stack Overflow用户
提问于 2021-05-02 01:11:42
回答 1查看 29关注 0票数 1

我是python的新手,我使用pandas从网站上抓取了一个表,并将其保存为csv文件,然后每隔60秒循环运行一次代码。每次循环运行时,我希望文件名不同或编号不同。我试过下面的方法

代码语言:javascript
复制
import pandas as pd
import time
starttime = time.time()
i=1
while True:
     url = 'https://www.moneycontrol.com/india/indexfutures/nifty/9/2021-05-27/OPTIDX/CE/12800.00/true
     optionchain = pd.read_html(url,attrs = {'class' : 'tblopt'})
     chaindata = pd.DataFrame(optionchain[1])
     chaindata1 = chaindata.rename(columns={0:'LTPcall',1:'Net Change',2:'Volume',3:'Open 
     Interest',4:'Change In Open Int',5:'StrikePrice',6:'LTPput',7:'Net Change',8:'Volume',9:'Open 
     Interest',10:'Change In Open Int'})
     s = 'file'
     x = (s+str(i))
     chaindata1.to_csv(r'C:\Users\dell\Desktop\data\%x.csv')
     i=+1
     time.sleep(60.0 - ((time.time() - starttime) % 60.0))

通过运行这个命令,我得到的第一个文件是file1,然后是file(x),它会一直覆盖file(x)。我想让它以file1、file2、file3等格式流动

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-05-02 01:40:08

i=+1什么也不做,它只是将+1赋值给i。Alson,您可以使用str.format格式化文件名。例如:

代码语言:javascript
复制
import pandas as pd
import time

starttime = time.time()
i = 1
while True:
    url = "https://www.moneycontrol.com/india/indexfutures/nifty/9/2021-05-27/OPTIDX/CE/12800.00/true"
    optionchain = pd.read_html(url, attrs={"class": "tblopt"})
    chaindata = pd.DataFrame(optionchain[1])
    chaindata1 = chaindata.rename(
        columns={
            0: "LTPcall",
            1: "Net Change",
            2: "Volume",
            3: "Open Interest",
            4: "Change In Open Int",
            5: "StrikePrice",
            6: "LTPput",
            7: "Net Change",
            8: "Volume",
            9: "Open Interest",
            10: "Change In Open Int",
        }
    )
    chaindata1.to_csv(
        r"C:\Users\dell\Desktop\data\file{}.csv".format(i)
    )  # <-- use str.format here
    i += 1  # <-- use i += 1 instead of i = +1
    time.sleep(60.0 - ((time.time() - starttime) % 60.0))
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67348899

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档