скачать из пути 'файл' сохранить в 'другой каталог' python проблема скрипта - PullRequest
0 голосов
/ 27 марта 2020

Нужна помощь

Получите данные о том, где находится файл, и сообщите новому каталогу для сохранения загруженных URL-адресов в переменную filepath, предполагая, что текстовый документ со ссылками находится в расположении скрипта python - в то время как это работает, я бы тоже хотел это изменить на прямой.

    import os.path
    import urllib.request

    # Get one line of text (e.g. C:\user\user\path\directory)

    filepath = input('please input the url file path: ')
    links = open('links.txt', 'r')
    newpath = input('Where would you like to store the file? ')
    for link in links:`
        # then get the filename from the end of the URL
        link = link.strip()
        filename = link.rsplit('/', 1)[-1]

    # Does this file exist in this folder? If not, download it
    if not (os.path.isfile(filename)):
        print ('Downloading: ' + filename + " to " + newpath)
        try:
            urllib.request.urlretrieve(link, newpath + filename)
            print ("File size was", os.path.getsize(filename))
        except Exception as inst:
            print (inst)
            print ('  Encountered unknown error. Continuing.')

    # File exists; don't download
    else:
        print("This file exists already.")

# End of program
print("Finished downloading."

1 Ответ

0 голосов
/ 27 марта 2020

Если ваша ошибка связана с тем, почему newpath не подключается к нему. Это потому, что я считаю, что в этой строке кода urllib.request.urlretrieve(link, newpath + filename) параметр link ничего не представляет. Вы можете попробовать распечатать это значение и посмотреть, что оно печатает.

Обратите внимание, что link в for для l oop является локальной переменной, и все, что там хранится, не будет доступно нигде в коде. .

for link in links:`
   # then get the filename from the end of the URL
   link = link.strip()
   filename = link.rsplit('/', 1)[-1]

Попробуйте определить глобальную переменную с именем link вне l oop, чтобы сохранить значение, сохраненное в l oop, и использовать его повсюду в коде. Вот так

filepath = input('please input the url file path: ')
links = open('links.txt', 'r')
newpath = input('Where would you like to store the file? ')
link = ""
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...