मान लें कि मैं वेबसाइटों से फ़ाइलें डाउनलोड करना चाहता हूं और फ़ाइलें इस शैली द्वारा सूचीबद्ध हैं

www.website.com/file001.mp3
www.website.com/file002.mp3
www.website.com/file003.mp3
.
.
.
www.website.com/file451.mp3
www.website.com/file452.mp3
www.website.com/file453.mp3

और मैं कुछ कोड बनाना चाहता हूं जो इन्हें लूप का उपयोग करके डाउनलोड करेंगे।

for i in range(1, 454):
    downloadFunction('www.website.com/file00'+i+'.mp3')

यह तब काम नहीं करेगा जब मैं ९ से बड़ा हो, क्योंकि तब संयोजन इस तरह दिखेगा

'www.website.com/file0010.mp3' 

की बजाय

'www.website.com/file010.mp3' 

मैं प्रत्येक सौवें मूल्य के लिए मामले को कोड कर सकता था लेकिन मुझे लगता है कि इसे कोड करने का एक और शानदार तरीका है।

0
SantoshGupta7 14 सितंबर 2018, 00:37

4 जवाब

सबसे बढ़िया उत्तर

format स्ट्रिंग का उपयोग करके, आप यह कर सकते हैं :

url_template = 'www.website.com/file{:03}.mp3'

for i in range(9, 12):
    print(url_template.format(i))

आउटपुट:

www.website.com/file009.mp3
www.website.com/file010.mp3
www.website.com/file011.mp3

तो, आपके आवेदन के लिए:

url_template = 'www.website.com/file{:03}.mp3'
for i in range(1, 454):
    downloadFunction(url_template.format(i))
6
Thierry Lathuille 14 सितंबर 2018, 00:48

उपयोग:

for i in range(1, 454):
    downloadFunction('www.website.com/file'+str(i).rjust(3,'0')+'.mp3')

बजाय।

1
msi_gerva 14 सितंबर 2018, 11:43

आप downloadFunction('www.website.com/file%03d.mp3' % i) कर सकते हैं। % एक प्लेसहोल्डर है और d एक संख्यात्मक प्रारूप-विनिर्देशक है। 03, Python को तीन वर्णों तक के शून्य-पैड के बारे में बताता है।

1
Woody1193 14 सितंबर 2018, 00:54

आप zfill का इस्तेमाल कर सकते हैं , जो एक स्ट्रिंग फ़ंक्शन है जो एक स्ट्रिंग को अग्रणी शून्य के साथ पैड करता है। आपके मामले में:

for i in range(1, 454):
    downloadFunction('www.website.com/file{}.mp3'.format(str(i).zfill(3)))
1
101 14 सितंबर 2018, 00:48