【问题标题】:Python variable/count not increasingPython变量/计数不增加
【发布时间】:2016-11-19 12:33:29
【问题描述】:

我的代码尝试创建一个文件夹,然后将 pdf 下载到相应的文件夹。在我当前的代码中,变量和计数器“i”跟踪要下载到哪个文件夹,但由于某种原因它似乎没有更新。在 else if 语句的末尾,我希望变量 i 增加 1。不明白这里的问题是什么,我对 python 还很陌生,如果在 java 中编码了类似的情况,我知道这只会工作文件但是不知道为什么它不能在 python 中工作。

import re
import os
import urllib
f = open("newfile.txt")
suffix = '.pdf'
for line in f:
    i = 0
    folderopt = str(i)


    if suffix in line:
        print('download')
        url = line.rstrip('\n')
        pdfname = url.split('LTN',1)[1]
        print ('download to:'+'/Users/user/Desktop/PDF/'+folderopt+'/'+pdfname)
        urllib.urlretrieve(url,'/Users/user/Desktop/PDF/'+folderopt+'/'+pdfname)
    elif line>i:

        filename = line.rstrip('\n')
        print ('code:'+filename)
        os.mkdir('/Users/user/Desktop/PDF/'+filename)
        global i
        i = i+1
f.close

编辑:我将变量放在 for 循环之外仍然得到这个

IOError: [Errno 2] No such file or directory: '/Users/user/Desktop/PDF/0/20160412398.pdf'

即使创建了文件夹 /Users/user/Desktop/PDF/1,i 计数也没有增加。

将 elif 语句更改为

elif int(line.rstrip('\n'))>i

还是不行

【问题讨论】:

  • 您现在看到的输出是什么?你有打印语句——请在上面显示一些输出^^用你的代码。
  • 您将字符串line 与整数i 进行比较。那是行不通的。

标签: python download


【解决方案1】:

你在循环中将 i 设置为 0,试试这个:

import re
import os
import urllib
f = open("newfile.txt")
suffix = '.pdf'
i = 0
for line in f:
    folderopt = str(i)

    if suffix in line:
        print('download')
        url = line.rstrip('\n')
        pdfname = url.split('LTN',1)[1]
        print ('download to:'+'/Users/user/Desktop/PDF/'+folderopt+'/'+pdfname)
        urllib.urlretrieve(url,'/Users/user/Desktop/PDF/'+folderopt+'/'+pdfname)
    elif line>i:

        filename = line.rstrip('\n')
        print ('code:'+filename)
        os.mkdir('/Users/user/Desktop/PDF/'+filename)
        global i
        i+= 1
f.close

【讨论】:

    【解决方案2】:

    那是因为循环中的第一行将 i 设置为 0。

    试试

    i = 0
    for line in f:
    

    而不是

    for line in f:
        i = 0
    

    编辑:

    另外,i+=1 应该在 elif 条件之外,就像这样

    elif:
        ...
    i+=1
    

    不是

    elif:
        ...
        i+=1
    

    【讨论】:

    • 由于某种原因尝试了 i 仍然没有增加
    • 已编辑,i+=1 也应该在 elif 条件之外
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-27
    • 2020-03-21
    • 2016-06-03
    • 2019-04-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多