回答
你應該爲此使用一個庫。請注意,擴展名!=文件類型,因爲您可以將擴展名更改爲.jpg文件,使用油漆打開它,油漆會將其解釋爲像jpeg(例如)。你應該檢查How to find the mime type of a file in python?。
這已被提及 - 這應該是一個評論,而不是回答 –
假設:
>>> files = {"a_movie.mkv", "an_image.png", "a_movie_without_extension", "an_image_without_extension"}
而且他們是在腳本文件夾中適當的電影和圖像文件。
你可以使用內建mimetypes模塊,但它不會沒有擴展名。
>>> import mimetypes
>>> {file: mimetypes.guess_type(file) for file in files}
{'a_movie_without_extension': (None, None), 'an_image.png': ('image/png', None), 'an_image_without_extension': (None, None), 'a_movie.mkv': (None, None)}
或致電unix命令file
。這工作沒有擴展,但不是在Windows:
>>> import subprocess
>>> def find_mime_with_file(path):
... command = "/usr/bin/file -i {0}".format(path)
... return subprocess.Popen(command, shell=True, stdout=subprocess.PIPE).communicate()[0].split()[1]
...
>>> {file: find_mime_with_file(file) for file in files}
{'a_movie_without_extension': 'application/octet-stream;', 'an_image.png': 'image/png;', 'an_image_without_extension': 'image/png;', 'a_movie.mkv': 'application/octet-stream;'}
或者你嘗試與PIL打開它,並檢查錯誤,但需要安裝PIL:
>>> from PIL import Image
>>> def check_image_with_pil(path):
... try:
... Image.open(path)
... except IOError:
... return False
... return True
...
>>> {file: check_image_with_pil(file) for file in files}
{'a_movie_without_extension': False, 'an_image.png': True, 'an_image_without_extension': True, 'a_movie.mkv': False}
或者,爲簡單起見,你說,只是檢查擴展,這是我想的最好的方式。
>>> extensions = {".jpg", ".png", ".gif"} #etc
>>> {file: any(file.endswith(ext) for ext in extensions) for file in files}
{'a_movie_without_extension': False, 'an_image.png': True, 'an_image_without_extension': False, 'a_movie.mkv': False}
+1注意到其他人使用'文件'或選項二最適合我的使用情況下,我爬行檢索無返回的圖像擴展名,並需要將它們保存爲.jpg/.png – matchew
還有一個簡單的方法來解決這個問題....「request.files中的if file':」如果有文件,試試這個,那麼它將返回true。 。 –
- 1. 檢測上傳的文件是否是PHP中的圖像
- 2. 如何檢測文件是否是perl中的圖像
- 3. 如何檢測href是否是圖像?
- 4. 檢測文件是否是Python中的視頻?
- 5. 檢測ColdFusion中圖像是否模糊
- 6. 圖像中檢測是否在Javascript
- 7. 檢測圖像中是否存在球
- 8. 如何檢測文件是否是PHP中的圖標?
- 9. 是否有可能檢測到重複的圖像文件?
- 10. 檢查文件是否爲圖像
- 11. 檢查文件是否爲圖像
- 12. 如何檢查文件是否是C++中的圖像類型?
- 13. 檢測圖像控件是否已完成更新其圖像
- 14. 檢測圖像是否有水印?
- 15. 檢查文件是否是任何圖像(一般檢查) - PHP
- 16. 檢測文件是否在python中的網絡驅動器上
- 17. 檢測給定的文件是否爲圖像,並且是java中特定類型的有效圖像
- 18. python檢測文檔中的圖像
- 19. 檢查文件是否是有效的圖像
- 20. 檢查文件是否是aws上的圖像或xml S3
- 21. 檢測文本中的鏈接,並確定它是否是圖像
- 22. 如何檢測文件路徑是否用Python封裝在「..」中?
- 23. 如何檢測圖像是否是方形的?
- 24. 檢查圖像是否是單色的
- 25. Python:檢查「兩個」.doc文件是否是相同的文件?
- 26. 檢測文件是否是Java 8中的符號鏈接
- 27. 檢查圖像是否包含文字?
- 28. 檢查圖像是否
- 29. 檢測是否從一個圖像中的對象與OpenCV的
- 30. 檢測文件是否打開
根據標準的python文件類型http://docs.python.org/c-api/concrete.html圖像文件不是標準的,所以我猜想會需要一些外部模塊。 – timonti
使用'imghdr'模塊。請參閱[如何檢查文件是否是有效的圖像文件?](http://stackoverflow.com/questions/889333/how-to-check-if-a-file-is-a-valid-image-file) –