انجمنهای فارسی اوبونتو
کمک و پشتیبانی => برنامهسازی => نویسنده: hashak در 03 اردیبهشت 1397، 09:53 بظ
-
من این کد رو نوشتم برای نمایش دادن تصویر
from PIL import Image
im = "/home/sh/Desktop/main-folder/memory.jpeg"
Image.open(im).show()
وقتی کد رو اجرا میکنم تصویر در نمایشگر تصویر image magick باز میشه. چطور میتونم کاری کنم تا در نمایشگر تصویری که به صورت پیشفرض روی سیستم من نصب است باز بشه؟
-
من این کد رو نوشتم برای نمایش دادن تصویر
from PIL import Image
im = "/home/ha/Desktop/main-folder/memory.jpeg"
Image.open(im).show()
وقتی کد رو اجرا میکنم تصویر در نمایشگر تصویر image magick باز میشه. چطور میتونم کاری کنم تا در نمایشگر تصویری که به صورت پیشفرض روی سیستم من نصب است باز بشه؟
نمیدونم دقیقا چقدر برات مهمه که از PIL استفاده بشه، اما اگر مهم نیست: (مثلا)
(1)[22:02][ArchLinux][~]$ python3
Python 3.6.5 (default, Apr 12 2018, 22:45:43)
[GCC 7.3.1 20180312] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.sys
os.sys os.sysconf( os.sysconf_names os.system(
>>> os.system("viewnior /path/to/file")
-
استفاده از PIL الان برام خیلی مهم نیست، برای من خطای Permission denied میده، من از Python 3.5.2 استفاده میکنم. من اشتباه کردم یا باید قبلش کار دیگهای کنم؟
python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("/home/sh/Desktop/main-folder/27879250.jpg")
sh: 1: /home/sh/Desktop/main-folder/27879250.jpg: Permission denied
32256
>>>
-
استفاده از PIL الان برام خیلی مهم نیست، برای من خطای Permission denied میده، من از Python 3.5.2 استفاده میکنم. من اشتباه کردم یا باید قبلش کار دیگهای کنم؟
python3
Python 3.5.2 (default, Nov 23 2017, 16:37:01)
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("/home/sh/Desktop/main-folder/27879250.jpg")
sh: 1: /home/sh/Desktop/main-folder/27879250.jpg: Permission denied
32256
>>>
باید یه ابزار برای اینکه باهاش تصویر را اجرا کنه انتخاب کنید.
مثلا با feh:
>>> import os
>>> os.system("feh /home/sh/Desktop/main-folder/27879250.jpg")
-
باید یه ابزار برای اینکه باهاش تصویر را اجرا کنه انتخاب کنید.
مثلا با feh:
>>> import os
>>> os.system("feh /home/sh/Desktop/main-folder/27879250.jpg")
بسیار عالی و تشکر فراوان.
-
ایا راهی وجود داره که نمایشگر تصویر پیشفرض سیستم به شکل خودکار شناسایی بشه و نیازی به وارد کردن دستی اسمش نباشه؟
-
ایا راهی وجود داره که نمایشگر تصویر پیشفرض سیستم به شکل خودکار شناسایی بشه و نیازی به وارد کردن دستی اسمش نباشه؟
نرمافزارهای پیشگزیده در پرونده زیر ذخیره میشوند:
sudo vim /usr/share/applications/mimeinfo.cache
در صورتی که کاربر چیزی تعیین کرده باشه در اینجا میتونید از این فایل متنی متوجه بشید که ابزار پیشفرضش برای باز کردن تصاویر چی هست.
یا حتی میتونی از xdg-open استفاده کنی.
مثلا:
(3)[16:42][ArchLinux][~]$ cat /usr/share/applications/mimeinfo.cache | grep image
application/x-cd-image=imagewriter.desktop;engrampa.desktop;
application/x-raw-disk-image=imagewriter.desktop;
image/bmp=gpicview.desktop;feh.desktop;gimp.desktop;
image/eps=org.pwmt.zathura-ps.desktop;
image/g3fax=gimp.desktop;
image/gif=gpicview.desktop;feh.desktop;gimp.desktop;
image/jp2=gimp.desktop;
image/jpeg=gpicview.desktop;feh.desktop;gimp.desktop;
image/jpeg2000=gimp.desktop;
image/jpg=gpicview.desktop;feh.desktop;
image/jpx=gimp.desktop;
image/pjpeg=feh.desktop;
image/png=gpicview.desktop;feh.desktop;gimp.desktop;
image/svg+xml=gpicview.desktop;gimp.desktop;
image/svg-xml=gpicview.desktop;
image/tiff=gpicview.desktop;evince.desktop;feh.desktop;gimp.desktop;
image/vnd.djvu=org.pwmt.zathura-djvu.desktop;
image/vnd.djvu+multipage=evince.desktop;org.pwmt.zathura-djvu.desktop;
image/x-bmp=gpicview.desktop;feh.desktop;
image/x-bzeps=evince.desktop;
image/x-compressed-xcf=gimp.desktop;
image/x-eps=org.pwmt.zathura-ps.desktop;evince.desktop;
image/x-fits=gimp.desktop;
image/x-gimp-gbr=gimp.desktop;
image/x-gimp-gih=gimp.desktop;
image/x-gimp-pat=gimp.desktop;
image/x-gzeps=evince.desktop;
image/x-icon=gimp.desktop;
image/x-pcx=gpicview.desktop;feh.desktop;gimp.desktop;
image/x-png=feh.desktop;
image/x-portable-anymap=feh.desktop;gimp.desktop;
image/x-portable-bitmap=gpicview.desktop;feh.desktop;gimp.desktop;
image/x-portable-graymap=feh.desktop;gimp.desktop;
image/x-portable-greymap=gpicview.desktop;
image/x-portable-pixmap=gpicview.desktop;feh.desktop;gimp.desktop;
image/x-psd=gimp.desktop;
image/x-psp=gimp.desktop;
image/x-sgi=gimp.desktop;
image/x-targa=gpicview.desktop;
image/x-tga=gpicview.desktop;feh.desktop;gimp.desktop;
image/x-wmf=gimp.desktop;
image/x-xbitmap=feh.desktop;gimp.desktop;
image/x-xcf=gimp.desktop;
image/x-xcursor=gimp.desktop;
image/x-xpixmap=gimp.desktop;
image/x-xwindowdump=gimp.desktop;
(4)[16:43][ArchLinux][~]$
بعد از این که اون پروندهها را خوندی، میتونی از رجکس هم استفاده کنی برای پیدا کردن نوشته مورد نظر:
(2)[17:00][ArchLinux][~]$ python3
Python 3.6.5 (default, Apr 12 2018, 22:45:43)
[GCC 7.3.1 20180312] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> file = open('/usr/share/applications/mimeinfo.cache', 'r')
>>> reading = file.read()
>>> reading
(در همون interpreter پایتون)
import re
help re
البتههای راههای زیادی هست، من اصلا وقت نذاشتم که بخوام برات چیزی بنویسم، ایده کلی را دادم، اگر موفق نشدی، بگو خودم برات مینویسم.
-
تشکر. من از این روش استفاده کردم و داره کار میکنه.
user_app = open("/usr/share/applications/mimeinfo.cache").read()
def find_app(user_app, first, last):
start = user_app.index(first) + len(first)
end = user_app.index(last, start)
return user_app[start:end]
image_viewer = find_app(user_app, "image/bmp=", ".desktop;")
print(image_viewer)
دلیل انتخاب image/bmp= این بود که فکر کردم فرمت bmp خیلی غریبه ;D و به همین خاطر سیستم، نمایشگر تصویر پیشفرض رو به اون اختصاص میده.