小白的白请教一个问题,如何这样生成一个列表 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
cffcaa
V2EX    问与答

小白的白请教一个问题,如何这样生成一个列表

  •  
      cffcaa 2016-09-06 11:48:48 +08:00 2299 次点击
    这是一个创建于 3325 天前的主题,其中的信息可能已经有所发展或是发生改变。
    是我想用笨方法下载一些资源,链接是类似这样的  xx.xx.xx/变量 A/变量 B.txt (称做变量是否正确)

    xx.xx.xx/123/652   xx.xx.xx/123/653   xx.xx.xx/123/654   xx.xx.xx/123/655   xx.xx.xx/123/656
    然后是  xx.xx.xx/124/786   xx.xx.xx/124/787   xx.xx.xx/124/788   xx.xx.xx/124/789   xx.xx.xx/124/790

    想了半天 也想不到啥好办法,如何能自动生成这样的列表,因为有两个变量,第变量 A 每增加 1 ,变量 B 则是五个中的一个
    如何能方便的按两个变量规则生成一个下载列表呢?
    请各位大师帮助! 感谢
    第 1 条附言    2016-09-06 15:30:02 +08:00
    本来放弃了,看到 @xucuncicero 说用 Excel 也能解决这个问题
    再一次,希望能说明白
    链接 1 , xx.xx.xx/12345(变量 A)/66605-66610 (变量 B ,在五个之间有一个是正确的)
    链接 2 , xx.xx.xx/12346/66606-66611(如果链接 1 的变量 B 是 66610,此处变量 B 在 66610-66615 之间有一个是正确的,如果链接 1 的变量 B 是 66608 ,此处变量 B 就在 66608-66612 之间有一个是正确的)
    下面链接都是这个规律。
    20 条回复    2016-09-06 17:05:53 +08:00
    v9ox
        1
    v9ox  
       2016-09-06 11:52:56 +08:00 via iPhone   1
    两个 for 循环
    cffcaa
        2
    cffcaa  
    OP
       2016-09-06 11:58:29 +08:00
    @v9ox
    可以给出详细步骤吗?纯小白一只
    我先搜一下
    BBrother
        3
    BBrother  
       2016-09-06 12:08:58 +08:00   1
    ```
    for a in [123, 124, 125]:
    for b in [456, 457, 458]:
    print "xxx.xxx.xxx/" + str(a) + "/" + str(b)
    ```
    BBrother
        4
    BBrother  
       2016-09-06 12:10:45 +08:00   1
    @BBrother 哎呀,回复不能用 markdown 吗?
    cffcaa
        5
    cffcaa  
    OP
       2016-09-06 12:13:52 +08:00
    @BBrother 请问这是那种语言的格式,我好下载安装
    有 win 下的批处理吗?
    BBrother
        6
    BBrother  
       2016-09-06 12:20:49 +08:00   1
    @cffcaa python ,批处理不会啊
    cffcaa
        7
    cffcaa  
    OP
       2016-09-06 12:37:35 +08:00
    @BBrother  谢谢,试验成功,
    不过这有上百条需要生成,有没有更便捷的方法?
    我是不是要求太份了!
    我再摸索摸索
    zhanglintc
        8
    zhanglintc  
       2016-09-06 12:50:43 +08:00   1
    批处理的:

    @echo off

    set outer=123
    :outerloop
    set inner=652
    :innerloop
    echo xx.xx.xx/%outer%/%inner%
    set /a inner = %inner% + 1
    if not %inner% == 791 goto innerloop
    set /a outer = %outer% + 1
    if not %outer% == 125 goto outerloop

    echo.
    echo Press any key to close...
    pause>nul

    不确定批处理里面的 for 能不能成功. 就想到了用两次 goto 来实现...
    还有就是注意一下最后那个边界, 要输出 790 就要设置到 791, 输出 124 就要设置到 125...
    cffcaa
        9
    cffcaa  
    OP
       2016-09-06 13:11:50 +08:00
    感谢几位的回复,
    刚才我有表达错误,变量 A 增加 1 ,变量 B 也会增加,我大概估算了下,量太大了,算了
    再次感谢 zhanglintc,BBrother,以及 v9ox 的帮助,
    感谢!
    xucuncicero
        10
    xucuncicero  
       2016-09-06 13:15:01 +08:00   1
    都这么高大上啊,楼主用 Excel 吗?
    A 列生成 A :=INT((ROW()-1)/5)+123
    B 列生成 B :不知道有什么规律,这个 652 和 786 是根据什么来的
    然后 C 列:="xx.xx.xx/"&A1&"/"&B1&".txt"
    要多少条就下拉多少行
    BBrother
        11
    BBrother  
       2016-09-06 13:15:21 +08:00   1
    @cffcaa 你可以看看 python 的 itertools 模块的 product 方法,应该比两个 for 快。但是几百条的话,两个 for 也是一瞬间的事。
    zhanglintc
        12
    zhanglintc  
       2016-09-06 13:31:47 +08:00   1
    @xucuncicero 其实我也觉得 Excel 最简单, 拉一下就行了... 就是不清楚具体需求. 哈哈
    cffcaa
        13
    cffcaa  
    OP
       2016-09-06 14:52:32 +08:00
    @xucuncicero

    @zhanglintc
    有 wps , B 列输那个公式?

    假如变量 A 是 12345 ,那么变量 B 在 66675-66680 之间,下一条就是变量 A 是 12346 ,变量 B 就在 66676-66681 之间
    ,变量 A 不是连续的,变量 B 是一个规律
    有几百条链接,
    imn1
        14
    imn1  
       2016-09-06 15:38:32 +08:00
    大部分下载器都能这样生成链接的
    cffcaa
        15
    cffcaa  
    OP
       2016-09-06 15:41:05 +08:00
    @imn1
    不能吧,因为有两处变量,!我没发现有啊,
    给个提示?
    xucuncicero
        16
    xucuncicero  
       2016-09-06 16:00:39 +08:00   1
    @cffcaa 公式没法写,问题是你这个需求描述还是太模糊了。如果 A 不连续,是不是就是没规律?那就没办法整; B 这个规律你自己估计是明白,不过旁人看不明白, B 跟 A 有关系吗还是相互独立的,或者就是以 66675 、 66676 、 66677 这样的顺序依次生成五个数?你的描述尽量数学化吧,没有歧义,人家好懂。。。

    另外,你是要下载的话,难道没个目录什么的吗,不能直接把所有链接都扒下来吗?
    cffcaa
        17
    cffcaa  
    OP
       2016-09-06 16:17:40 +08:00
    @xucuncicero
    以上没说清楚,这回看怎么样,
    链接 1 , xx.xx.xx/12345(变量 A)/66605-66610 (变量 B ,在五个之间有一个是正确的)
    链接 2 , xx.xx.xx/12346/66606-66611(如果链接 1 的变量 B 是 66610,此处变量 B 在 66610-66615 之间有一个是正确的,如果链接 1 的变量 B 是 66608 ,此处变量 B 就在 66608-66612 之间有一个是正确的)

    你就按照 A 是 12345 , B 就生成  66605-66610  
    再往下, A 是 12346 , B 就生成  66606-66611
    这样给我写怎么样,不要管不连续的问题,按连续写如何?
    设定 A 的范围 12345-12445 之间, B 按以上规律类推行不?

    没有目录,不方便外传,所以我才想到这个笨办法,一些下载工具如迅雷啊,只能控制一处变量,实现不了
    imn1
        18
    imn1  
       2016-09-06 16:35:09 +08:00   1
    @xucuncicero
    至少 firefox/downthemall 扩展可以
    IDM/FDM 那些应该也可以吧?不会这么弱这个小功能都没有吧,没有的话就是我抬举他们了
    xucuncicero
        19
    xucuncicero  
       2016-09-06 16:52:02 +08:00   1
    @cffcaa
    A1 :=INT((ROW()-1)/6)+12345
    B1 :=66605+ROUNDUP(ROW()/6,0)+MOD(ROW(A6),6)-1
    cffcaa
        20
    cffcaa  
    OP
       2016-09-06 17:05:53 +08:00
    @imn1
    谢谢回复, IDM ,迅雷,快车都是只能控制一个变量, firefox 扩展不适用我这种情况,

    @xucuncicero
    感谢给出公式,我试验试验,感谢!
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2987 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 24ms UTC 13:45 PVG 21:45 LAX 06:45 JFK 09:45
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86