Search code examples
pythoncommand-linegnome-terminal

execute command in gnome-terminal using python


I am trying to open one file from gnome-terminal using python. But I am not able to do it.It is just opening terminal and not opening file. I have tried like:

import os
os.system('gnome-terminal --working-directory = "folder_path" + "[-e, --command=" kate aaa.txt""')

Can anyone please help?


Solution

  • The problem is + "[-e, --command=" kate aaa.txt"", gnome-terminal doesn't know how to parse this + "[ and "", according to the manual, -e and --command mean the same thing:

    man gnome-terminal
    
    ...
    
           --command, -e=COMMAND
               Split the argument to this option into a program and arguments in the same way a shell
               would, and execute the resulting command-line inside the terminal.
    
               This option is deprecated. Instead, use -- to terminate the options, and put the program
               and arguments to execute after it: for example, instead of gnome-terminal -e "python3 -q",
               prefer to use gnome-terminal -- python3 -q.
    
               Note that the COMMAND is not run via a shell: it is split into words and executed as a
               program. If shell syntax is required, use the form gnome-terminal -- sh -c '...'.
    

    This works for me in Archlinux:

    import os
    os.system('gnome-terminal --working-directory = /home/ramsay --command="kate 
    os"')