2014-11-22 3 views
0

Просто пытайтесь загрузить несколько прошлых документов с веб-сайта экзамена, улучшая свои навыки программирования. Я исследовал довольно много вещей и не знаю, почему это не работает.Почему я получаю FileNotFoundException здесь?

Ошибка:

Downloading C:\Users\Azmat\Desktop\Practise Exams\Biology\January 2012 Question Paper.pdf 
Traceback (most recent call last): 
    File "testDownloader.py", line 31, in <module> 
    with open(filename, 'w+') as code: 
FileNotFoundError: [Errno 2] No such file or directory: 'C:\\Users\\Azmat\\Desktop\\Practise Exams\\Biology\\January 2012 Question Paper.pdf' 

Мой код:

import urllib.request, urllib.parse, urllib.error 

years = [12, 13] 
months = ["JAN", "JUN"] 
subjects = ["BL", "CH", "PH"] 
files = ["QP", "W-MS", "WRE"] 
sub = { 
    'BL': 'Biology', 
    'CH': 'Chemistry', 
    'PH': 'Physics', 
} 
mon = { 
    'JAN' : 'January', 
    'JUN' : 'June', 
} 
fil = { 
    'QP' : 'Question Paper', 
    'W-MS' : 'Mark scheme', 
    'WRE' : "Examiner's report" 
} 

for year in years: 
    for month in months: 
     for subject in subjects: 
      for file in files: 
       url =('http://filestore.aqa.org.uk/subjects/AQA-%s1HP-%s-%s%d.PDF' % (subject, file, month, year)) 
       filename = 'C:\\Users\\Azmat\\Desktop\\Practise Exams\\' + sub[subject] + '\\' + mon[month] + ' 20%d ' % year + fil[file] + '.pdf' 
       print("Downloading " + filename) 
       f = urllib.request.urlopen(url) 
       data = f.read() 
       with open(filename, 'w+') as code: 
        code.write(data) 

ответ

0

каталог вы пишете файл должен существовать, прежде чем открыть файл для записи. Вы можете использовать os.mkdir для одного каталога или os.makedirs для рекурсивного создания каталогов.

import os 
for subject in sub.values(): 
    os.makedirs('C:\\Users\\Azmat\\Desktop\\Practise Exams\\' + subject) 
+0

Большое спасибо, исправлена ​​проблема! – Injustice

Смежные вопросы