возьмите буквы после определенной буквы и поместите их в одну переменную

#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]
 

которые дают

https://ih1.redbubble.net/image.805972169.4072