如何运行将值添加到字符串的循环?

时间:2018-07-21 11:49:13

标签: python string python-3.x

我的文件名看起来像这样:

data00001
data00002
data00003
....
data00010
....

我保存了它们,并希望使用以下代码从他们所在的网站下载它们:

import urllib.request as urllib2

response = urllib2.urlopen("https://somewebsite/data00001.mat")
file = open(r"C:\Users\me\Desktop\data\data00001.mat", 'wb')
file.write(response.read())
file.close()

我应提供起始和结束文件名,例如:

从data00001到data01000,因此在此示例中,我希望下载从data0001到data01000的文件。 如何增加数据附近的数值以使其正常工作?

3 个答案:

答案 0 :(得分:5)

尝试一下:

for i in range(1, 1001):
    filename = "data" + str(i).zfill(4) + ".mat" # gives a padding of four digits

您可以使用文件名进行所有操作

答案 1 :(得分:0)

您可以使用整数范围和带零填充的格式化打印:

import urllib.request as urllib2

for i in range(1000):
    filename = 'data{:05d}.mat'.format(i)
    response = urllib2.urlopen("https://somewebsite/" + filename)
    file = open(r"C:\Users\me\Desktop\data\" + filename, 'wb')
    file.write(response.read())
    file.close()

答案 2 :(得分:0)

在循环中检索所有文件非常容易:

import urllib.request as urllib2

counter = 1
limit = 1000
filename = "data"

for i in range(limit+1):
    newFilename = "".join([filename,str(i).zfill(5)])
    response = urllib2.urlopen("https://somewebsite/" + newFilename + ".mat")
    file = open(r"C:\\Users\\me\\Desktop\\data\\" + newFilename + ".mat", 'wb')
    file.write(response.read())
    file.close()