Как найти имя файла в python - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть вопрос. Я немного запутался в этом. У меня есть URL-адрес, с которого приходят изображения и видео. Я хочу получить имя по этой ссылке, проверить, является ли оно изображением или видео, и выполнить действие с ним. как

if filename.endwith(.jpg or .png):
   print("it's an image")
else filename.endwith(.mp4, .avi):
   print("it's a video) 

имя файла представляет собой список. в котором хранятся все данные:

        ls = ["C:/Users/OB/Desktop/DevoMech Project/6.JPG" , "C:/Users/OB/Desktop/DevoMech Project/7.JPG"]

    if ls.endwith(.JPG or .JPEG):

        item1 = QtWidgets.QListWidgetItem(QIcon(ls), "item1")
        self.dlistWidget.addItem(item1)
        #item2 = QtWidgets.QListWidgetItem(QIcon("C:/Users/OB/Desktop/DevoMech Project/7.JPEG"), "item2")
        self.dlistWidget.addItem(item2)

и вместо первого элемента отображается фактическое имя.

Ответы [ 4 ]

2 голосов
/ 12 февраля 2020

Я всегда предпочитаю использовать встроенную ОС, если это возможно для путей, а также перехватывать неподдерживаемые типы

import os
video_types = ('.mp4', '.avi', '.jpeg')
image_types = ('.png', '.jpg')
filenames = ["/test/1.jpg","/test/2.avi","/test/unknown.xml","/test/noextention"]

for filename in filenames:
    print(filename)
    if os.path.splitext(filename)[1] in video_types:
        print("Its a Video")
    elif os.path.splitext(filename)[1] in image_types:
        print("Its an Image")
    else:
        print("No Idea")
/test/1.jpg

Its an Image

/test/2.avi

Its a Video

/test/unknown.xml

No Idea

/test/noextention

No Idea
1 голос
/ 12 февраля 2020
from urlparse import urlparse
from os.path import splitext

url = "sample/test/image.png"


image_formats = [".png", ".jpeg"]
video_formats = [".mp4", ".mp3", ".avi"]

def get_ext(url):
    """Return the filename extension from url, or ''."""
    parsed = urlparse(url)
    root, ext = splitext(parsed.path)
    return ext  


if get_ext(url) in image_formats:
   print("it's an image")
elif get_ext(url) in video_formats:
    print("it's a video")
else:
    print("some differnet format")

это будет работать для любого типа URL

www.example.com/image.jpg
https://www.example.com/page.html?foo=1&bar=2#fragment
https://www.example.com/resource
0 голосов
/ 12 февраля 2020

Вы можете использовать встроенный метод разделения String. Например: -

file_name = 'my_image.jpg'
file_type = file_name.split('.')[-1] # it will give you 'jpg' last element
0 голосов
/ 12 февраля 2020
if filename.lower().endswith(('.png', '.jpg', '.jpeg')):
   print("it's an image")
elif filename.lower().endswith(('.mp4', '.avi')):
   print("it's a video") 
...