Ответ 1
filename = url[url.rfind("/")+1:]
filename_small = filename.replace(".", "_small.")
возможно использовать ".jpg" в последнем случае, так как a. также может быть в имени файла.
У меня есть следующий URL:
url = http://photographs.500px.com/kyle/09-09-201315-47-571378756077.jpg
Я хотел бы извлечь имя файла в этом URL: 09-09-201315-47-571378756077.jpg
Как только я получу это имя файла, я собираюсь сохранить его с этим именем на рабочем столе.
filename = **extracted file name from the url**
download_photo = urllib.urlretrieve(url, "/home/ubuntu/Desktop/%s.jpg" % (filename))
После этого я собираюсь изменить размер фотографии, как только это будет сделано, я сохраню измененную версию и добавлю слово "_small" в конец имени файла.
downloadedphoto = Image.open("/home/ubuntu/Desktop/%s.jpg" % (filename))
resize_downloadedphoto = downloadedphoto.resize.((300, 300), Image.ANTIALIAS)
resize_downloadedphoto.save("/home/ubuntu/Desktop/%s.jpg" % (filename + _small))
Исходя из этого, я пытаюсь получить два файла: исходное фото с оригинальным именем, а затем измененное фото с измененным именем. Вот так:
09-09-201315-47-571378756077.jpg
09-09-201315-47-571378756077_small.jpg
Как я могу сделать это?
filename = url[url.rfind("/")+1:]
filename_small = filename.replace(".", "_small.")
возможно использовать ".jpg" в последнем случае, так как a. также может быть в имени файла.
Вы можете использовать urlparse
и os.path
встроенные модули python.
Пример:
>>> import urlparse, os
>>> url = "http://photographs.500px.com/kyle/09-09-201315-47-571378756077.jpg"
>>> a = urlparse.urlparse(url)
>>> a.path
'/kyle/09-09-201315-47-571378756077.jpg'
>>> os.path.basename(a.path)
'09-09-201315-47-571378756077.jpg'
Если у вас возникли проблемы с импортом urlparse
, попробуйте следующее:
Python 2
from six.moves.urllib.parse import urlparse
Python 3
from urllib.parse import urlparse
Вы можете просто разделить URL на "/" и получить последний элемент списка:
url = "http://photographs.500px.com/kyle/09-09-201315-47-571378756077.jpg"
filename = url.split("/")[-1]
#09-09-201315-47-571378756077.jpg
Затем используйте replace
, чтобы изменить окончание:
small_jpg = filename.replace(".jpg", "_small.jpg")
#09-09-201315-47-571378756077_small.jpg
os.path.basename(url)
Зачем стараться?
In [1]: os.path.basename("https://foo.com/bar.html")
Out[1]: 'bar.html'
In [2]: os.path.basename("https://foo.com/bar")
Out[2]: 'bar'
In [3]: os.path.basename("https://foo.com/")
Out[3]: ''
In [4]: os.path.basename("https://foo.com")
Out[4]: 'foo.com'
Python разделил URL-адрес, чтобы найти имя и расширение имени файла
поможет вам извлечь имя изображения. добавить имя:
imageName = '09-09-201315-47-571378756077'
new_name = '{0}_small.jpg'.format(imageName)
Иногда есть строка запроса:
filename = url.split("/")[-1].split("?")[0]
new_filename = filename.replace(".jpg", "_small.jpg")