#python
Вопрос:
я пишу искусственный интеллект на python, и на одном шаге пользователь должен ввести URL-адрес изображения. для программы он должен ввести весь URL-адрес и буквы после последнего / отдельно, потому что код сначала загружает изображение, а затем ищет его в загрузках. но, это раздражает пользователя, когда он вводит URL — адрес и имя. кто-нибудь может мне помочь?
def ImageRecognizer():
print("########################################")
print()
print("Enter Image Url:")
print()
imageInput = input("")
try:
urllib.request.urlopen(imageInput)
except:
print("Url not accessable. Try another.")
ImageRecognizer()
print()
print("nter full name of image:")
print()
imageEnding = input("")
sunflower_url = imageInput
sunflower_path = tf.keras.utils.get_file(imageEnding, origin=sunflower_url)
img = keras.preprocessing.image.load_img(
sunflower_path, target_size=(img_height, img_width)
)
img_array = keras.preprocessing.image.img_to_array(img)
img_array = tf.expand_dims(img_array, 0) # Create a batch
predictions = model.predict(img_array)
score = tf.nn.softmax(predictions[0])
print(
"This image most likely belongs to {} with a {:.2f} percent confidence."
.format(class_names[np.argmax(score)], 100 * np.max(score))
)
time.sleep(2)
Комментарии:
1. Вы ищете что-то подобное
imageInput.split('/')[-1]
?2. я хочу, чтобы пользователь вводил URL-адрес один раз, а затем скрипт брал буквы после последнего / и помещал их в другую переменную. но не в списке, а в 2 разных переменных
Ответ №1:
Вы могли бы сделать:
data = imageInput.split('/')
file = data[-1]
path = "/".join(data[:-1])
который поместил бы имя изображения в переменную файла, а путь к файлу-в переменную пути.
Комментарии:
1. используйте
rsplit
для 1 вкладыша
Ответ №2:
Разделите URL-адрес, указанный пользователем, используя » / » в качестве разделителя, это вернет список строк.
Поскольку вы хотите, чтобы элемент был таким, как имя изображения, проиндексируйте его с помощью ‘[-1]’
mystr = 'www.google.com/one/two/coffee'
image_name = mystr.split('/')[-1] # split into elements and take the last one
print(image_name)
>>> 'coffee'
Комментарии:
1. когда у меня это есть, это выдает мне ошибку ih1.redbubble.net/image.805972169.4072/… Обратная связь (последний последний вызов): Файл «C:UsersTerminatorDesktoppredict.py», строка 116, в файле <модуль> Распознаватель изображений () «C:UsersTerminatorDesktoppredict.py», строка 96, в распознавателе изображений image_name = imageInput(‘/’)[-1] Ошибка типа: объект ‘str’ не может быть вызван
2. вы забыли .split(‘/’) Использовать следующее имя_образа = imageInput.split(‘/’)[-1]
Ответ №3:
вы можете рассмотреть rsplit
imageInput='https://ih1.redbubble.net/image.805972169.4072/fposter,small,wall_texture,product,750x1000.u3.jpg'
opt=imageInput.rsplit('/',1)[0]
которые дают