Предполагается, что эта программа сможет загружать содержимое с http: URL и сохранять его в выбранном пользователем каталоге.
import urllib.request
import urllib.error
def run_user_interface() -> None:
url = _choose_url()
if len(url) == 0:
return
else:
print()
save_path = _choose_save_path()
if len(save_path) == 0:
return
else:
_download_url(url, save_path)
def _choose_url() -> str:
print('Choose a URL to download (press Enter or Return to quit)')
return input('URL: ').strip()
def _choose_save_path() -> str:
print('Choose where you\'d like to save the file you download')
return input('Path: ').strip()
def _download_url(url_to_download: str, file_path: str) -> None:
response = None
file_to_save = None
try:
response = urllib.request.urlopen(url_to_download)
file_to_save = open(file_path, 'wb')
file_to_save.write(response.read())
except urllib.error.HTTPError as e:
print('Failed to download contents of URL')
print('Status code: {}'.format(e.code))
print()
finally:
if file_to_save != None:
file_to_save.close()
if response != None:
response.close()
if __name__ == '__main__':
run_user_interface()
Выполнение программы на компьютере моего друга работает нормально. Однако, когда я выполняю его на своем компьютере, я получаю следующую ошибку.
Traceback (most recent call last):
File "C:\Users\garci\Desktop\ICS_32_Winter_2020\new_download_file.py", line 63, in <module>
run_user_interface()
File "C:\Users\garci\Desktop\ICS_32_Winter_2020\new_download_file.py", line 20, in run_user_interface
_download_url(url, save_path)
File "C:\Users\garci\Desktop\ICS_32_Winter_2020\new_download_file.py", line 40, in _download_url
file_to_save = open(file_path, 'wb')
PermissionError: [Errno 13] Permission denied: 'C:\\Users\\garci\\Desktop\\ICS_32_Winter_2020'
Как я могу исправить эту ошибку разрешения? Спасибо.