gio 및 python3을 사용하여 파일 아이콘을 얻는 방법

뉴트론 말라 얄 람어

gtk를 사용하여 해당 파일의 기본 아이콘을 얻고 싶습니다.

이 방법을 python3에서 시도했지만 오류가 발생했습니다.

from gi.repository import Gio as gio
from gi.repository import Gtk
import os

def get_icon_filename(filename,size):
    #final_filename = "default_icon.png"
    final_filename = ""
    if os.path.isfile(filename):
        # Get the icon name
        file = gio.File(filename)
        file_info = file.query_info('standard::icon')
        file_icon = file_info.get_icon().get_names()[0]
        # Get the icon file path
        icon_theme = gtk.icon_theme_get_default()
        icon_filename = icon_theme.lookup_icon(file_icon, size, 0)
        if icon_filename != None:
            final_filename = icon_filename.get_filename()

    return final_filename


print(get_icon_filename("/home/newtron/Desktop/Gkite_Logo.png",64))

Err

  File "geticon", line 11, in get_icon_filename
    file = gio.File(filename)
TypeError: GInterface.__init__() takes exactly 0 arguments (1 given)

나는 gio 모듈에 대한 이전 경험이 없습니다. 내 코드에 문제가 있습니까? 이 오류에 대한 해결책이없는 경우.

뉴트론 말라 얄 람어

내 친구 @stovfl이 말했듯이 python2에 이전 Gi 및 Gtk 코드를 사용했기 때문입니다. 그러나 새 버전의 gio.File속성에는 다음과 같은 파일 속성의 종류를 지정하는 하위 속성 (클래스)이 더 많이 있습니다.

new_for_path클래스 나는 이것을 내 코드에서 사용하고 그것을 일했습니다. 실제로이 코드는 다른 StackOverflow 토론에서 얻었습니다.

다시 확인했을 때 python3 코드가 있습니다.

#!/usr/bin/env python
import gi
gi.require_version('Gtk', '3.0')
from gi.repository import Gio as gio
from gi.repository import Gtk as gtk
import os

def get_icon_filename(filename,size):
    #final_filename = "default_icon.png"
    final_filename = ""
    if os.path.isfile(filename):
        # Get the icon name
        file = gio.File.new_for_path(filename)
        file_info = file.query_info('standard::icon',0)
        file_icon = file_info.get_icon().get_names()[0]
        # Get the icon file path
        icon_theme = gtk.IconTheme.get_default()
        icon_filename = icon_theme.lookup_icon(file_icon, size, 0)
        if icon_filename != None:
            final_filename = icon_filename.get_filename()

    return final_filename


print(get_icon_filename("/home/newtron/Desktop/counter.desktop",48))

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

소켓 채널을 사용하여 파일 이름 및 파일 콘텐츠를 보내는 방법

분류에서Dev

os.listdir을 사용하여 Python3에서 파일 정보를 얻는 방법은 무엇입니까?

분류에서Dev

Gradle을 사용하여 파일 및 디렉토리 이름을 얻는 방법은 무엇입니까?

분류에서Dev

파일이 존재하지 않는 filedialog를 사용하여 경로 및 사용자 정의 파일 이름을 얻는 방법 C #?

분류에서Dev

Abdera atom 클라이언트를 사용하여 콘텐츠 및 첨부 파일을 보내는 방법

분류에서Dev

Abdera atom 클라이언트를 사용하여 콘텐츠 및 첨부 파일을 보내는 방법

분류에서Dev

Python 및 Drive API v3를 사용하여 Google 드라이브 파일을 다운로드하는 방법

분류에서Dev

jquery ajax를 사용하여 파일 목록을 얻는 방법

분류에서Dev

CSS를 사용하여 링크 옆에 파일 형식 아이콘을 추가하는 방법

분류에서Dev

PHP 및 HTML을 사용하여 IF 및 다른 파일의 변수로 파일을 테스트하는 방법

분류에서Dev

rmtree ()를 사용하여 폴더 및 파일을 삭제하는 방법

분류에서Dev

laravel 및 vuejs를 사용하여 파일을 다운로드하는 방법

분류에서Dev

QT를 사용하여 .pack 및 .idx 파일을 삭제하는 방법

분류에서Dev

NSInputStream 및 NSOutputStream을 사용하여 오디오 파일을 읽고 쓰는 방법

분류에서Dev

Javadoc 및 Doxygen을 사용하여 파일 자체에 주석을다는 방법

분류에서Dev

Python을 사용하여 하위 폴더 및 파일을 새 폴더에 복사하는 방법

분류에서Dev

JSP / HTML 및 XSLT를 사용하여 XML 파일을 만드는 방법

분류에서Dev

Excel 및 .bat 파일을 사용하여 대시 보드를 만드는 방법

분류에서Dev

awk 및 sed를 사용하여 JSON 파일의 목록을 읽는 방법

분류에서Dev

Python을 사용하여 Selenium 및 웹 드라이버에서 텍스트의 일부를 얻는 방법

분류에서Dev

JQuery 및 JSON을 사용하여 Collection <Item>을 얻는 방법

분류에서Dev

JQuery 및 JSON을 사용하여 Collection <Item>을 얻는 방법

분류에서Dev

python3에서 정규식을 사용하여 값을 얻는 방법

분류에서Dev

스크립트를 사용하여 Mint-Y 테마 및 아이콘을 업데이트하는 방법

분류에서Dev

NodeJS 및 Google Drive API v3를 사용하여 파일을 휴지통으로 이동하는 방법

분류에서Dev

RegEx를 사용하여 Ini 파일에서 섹션 이름을 얻는 방법

분류에서Dev

c #을 사용하여 xml 파일에서 데이터를 얻는 방법

분류에서Dev

gradle.build 파일을 사용하여 js 및 css 파일을 최소화하는 방법

분류에서Dev

아이콘을 변경하는 방법-및 Jquery를 사용하여 div를 전환 할 때 +?

Related 관련 기사

  1. 1

    소켓 채널을 사용하여 파일 이름 및 파일 콘텐츠를 보내는 방법

  2. 2

    os.listdir을 사용하여 Python3에서 파일 정보를 얻는 방법은 무엇입니까?

  3. 3

    Gradle을 사용하여 파일 및 디렉토리 이름을 얻는 방법은 무엇입니까?

  4. 4

    파일이 존재하지 않는 filedialog를 사용하여 경로 및 사용자 정의 파일 이름을 얻는 방법 C #?

  5. 5

    Abdera atom 클라이언트를 사용하여 콘텐츠 및 첨부 파일을 보내는 방법

  6. 6

    Abdera atom 클라이언트를 사용하여 콘텐츠 및 첨부 파일을 보내는 방법

  7. 7

    Python 및 Drive API v3를 사용하여 Google 드라이브 파일을 다운로드하는 방법

  8. 8

    jquery ajax를 사용하여 파일 목록을 얻는 방법

  9. 9

    CSS를 사용하여 링크 옆에 파일 형식 아이콘을 추가하는 방법

  10. 10

    PHP 및 HTML을 사용하여 IF 및 다른 파일의 변수로 파일을 테스트하는 방법

  11. 11

    rmtree ()를 사용하여 폴더 및 파일을 삭제하는 방법

  12. 12

    laravel 및 vuejs를 사용하여 파일을 다운로드하는 방법

  13. 13

    QT를 사용하여 .pack 및 .idx 파일을 삭제하는 방법

  14. 14

    NSInputStream 및 NSOutputStream을 사용하여 오디오 파일을 읽고 쓰는 방법

  15. 15

    Javadoc 및 Doxygen을 사용하여 파일 자체에 주석을다는 방법

  16. 16

    Python을 사용하여 하위 폴더 및 파일을 새 폴더에 복사하는 방법

  17. 17

    JSP / HTML 및 XSLT를 사용하여 XML 파일을 만드는 방법

  18. 18

    Excel 및 .bat 파일을 사용하여 대시 보드를 만드는 방법

  19. 19

    awk 및 sed를 사용하여 JSON 파일의 목록을 읽는 방법

  20. 20

    Python을 사용하여 Selenium 및 웹 드라이버에서 텍스트의 일부를 얻는 방법

  21. 21

    JQuery 및 JSON을 사용하여 Collection <Item>을 얻는 방법

  22. 22

    JQuery 및 JSON을 사용하여 Collection <Item>을 얻는 방법

  23. 23

    python3에서 정규식을 사용하여 값을 얻는 방법

  24. 24

    스크립트를 사용하여 Mint-Y 테마 및 아이콘을 업데이트하는 방법

  25. 25

    NodeJS 및 Google Drive API v3를 사용하여 파일을 휴지통으로 이동하는 방법

  26. 26

    RegEx를 사용하여 Ini 파일에서 섹션 이름을 얻는 방법

  27. 27

    c #을 사용하여 xml 파일에서 데이터를 얻는 방법

  28. 28

    gradle.build 파일을 사용하여 js 및 css 파일을 최소화하는 방법

  29. 29

    아이콘을 변경하는 방법-및 Jquery를 사용하여 div를 전환 할 때 +?

뜨겁다태그

보관