Как загрузить изображение и поместить его в новый каталог в зависимости от местоположения скрипта? - PullRequest
0 голосов
/ 21 января 2019

Предположим, у меня есть этот код:

import urllib.request

url = 'https://docs.python.org/3/_static/py.png'
file_name = url.split('/')[::-1][0]
urllib.request.urlretrieve(url, file_name)

Когда этот код будет запущен, он загрузит py.png и назовет его py.png , ихранить в том же месте файла .py (с кодом)

Мой вопрос: как мне его кодировать, чтобы он загружал py.png в новой папке, основанной на расположении .py .

Предположим, мое .py расположение файла desktop\mypylocation\image.py

Я хочусоздайте новую папку и сохраните изображение в новой папке, чтобы путь к изображению был desktop\mypylocation\new_folder\py.png.

Ответы [ 2 ]

0 голосов
/ 21 января 2019

, чтобы получить местоположение файла Python, используйте

import os

path_of_py_file = os.path.abspath(os.path.dirname(__file__))

, чтобы создать там новую папку

os.mkdir(os.path.join(path_of_py_file, 'folder name'))

функция os.path.join объединяет части пути с правильным разделителем (и проверяет наличие только одного), это лучше, чем конкатенация строк с предположением, что разделитель является обратной косой чертой

0 голосов
/ 21 января 2019

вы можете использовать

import os
current_folder=os.getcwd()

если вы еще не изменили каталог или не запускаете сценарий из другого каталога. В противном случае вы можете узнать местоположение скриптов через

import sys
current_folder=sys.path[0]

Наконец, вы можете создать новую папку через

os.mkdir(current_folder+'my_new_folder')

В вашем случае это должно выглядеть так:

import sys
import os
import urllib.request

# Define URL
url = 'https://docs.python.org/3/_static/py.png'

# Figure out folder
curr_folder=sys.path[0]

# Create folder
os.mkdir(curr_folder+'/out')

# Get filename
file_name =curr_folder+'/out/'+url.split('/')[::-1][0]
urllib.request.urlretrieve(url, file_name)

Надеюсь, это поможет.

...