How to open a file with the standard application?

前端 未结 6 760
无人及你
无人及你 2020-11-30 05:36

My application prints a PDF to a temporary file. How can I open that file with the default application in Python?

I need a solution for

  • Windows
相关标签:
6条回答
  • 2020-11-30 06:15

    Open file using an application that your browser thinks is an appropriate one:

    import webbrowser
    webbrowser.open_new_tab(filename)
    
    0 讨论(0)
  • 2020-11-30 06:17

    os.startfile is only available for windows for now, but xdg-open will be available on any unix client running X.

    if sys.platform == 'linux2':
        subprocess.call(["xdg-open", file])
    else:
        os.startfile(file)
    
    0 讨论(0)
  • 2020-11-30 06:22

    A small correction is necessary for NicDumZ's solution to work exactly as given. The problem is with the use of 'is' operator. A working solution is:

    if sys.platform == 'linux2':
        subprocess.call(["xdg-open", file])
    else:
        os.startfile(file)
    

    A good discussion of this topic is at Is there a difference between `==` and `is` in Python?.

    0 讨论(0)
  • 2020-11-30 06:24

    on windows it works with os.system('start <myFile>'). On Mac (I know you didn't ask...) it's os.system('open <myFile>')

    0 讨论(0)
  • 2020-11-30 06:28
    if linux:
        os.system('xdg-open "$file"') #works for urls too
    else:
        os.system('start "$file"') #a total guess
    
    0 讨论(0)
  • 2020-11-30 06:35

    Ask your favorite Application Framework for how to do this in Linux.

    This will work on Windos and Linux as long as you use GTK:

    import gtk
    gtk.show_uri(gtk.gdk.screen_get_default(), URI, 0)
    

    where URI is the local URL to the file

    0 讨论(0)
提交回复
热议问题