我的代码尝试创建一个文件夹,然后将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 count也没有增加。
将elif语句更改为
elif int(line.rstrip('\n'))>i
仍然无法正常工作
答案 0 :(得分:0)
这是因为你的循环中的第一行将i
设置为0。
尝试
i = 0
for line in f:
而不是
for line in f:
i = 0
编辑:
此外,i+=1
应该在elif条件之外,如此
elif:
...
i+=1
不
elif:
...
i+=1
答案 1 :(得分:0)
你在循环中将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