Я хочу автоматизировать некоторые процессы для своей работы, таким образом, я wrighting сценарий Python, чтобы сделать это. Я хочу считать данные файла в новом терминале, таким образом, у меня есть функция на моем сценарии Python:
os.chdir("/home/andrej/Desctop/.kjk")
os.system(f"gnome-terminal -- 'cat site.txt'")
и у меня нет 'такого файла или каталога' ошибка. Как я крытый тростником терминал гнома не делает команды 'кошки', таким образом, я пишу другой файл Python, который должен считать данные для меня и распечатать их в новой консоли, но ошибка - то же.
os.chdir("/home/andrej/Desctop/.kjk")
os.system(f"gnome-terminal -- 'python3 read.py'")
Все работы отлично от того же терминала, откуда я выполнение управляю, но я просто наклон делаю это от нового.
Другой функции, работающие в новом терминале правильно, например:
os.system(f"gnome-terminal -e 'sshpass -p {self.spassw} ssh {self.username}@{self.ip}'")
Таким образом, как я могу просто считать файл из нового терминала гнома, или что я делаю неправильно?
gnome-terminal
команда ожидает -- command
дополнительно сопровождаться списком позиционных параметров. Когда Вы делаете
os.system(f"gnome-terminal -- 'cat site.txt'")
или
os.system(f"gnome-terminal -- 'python3 read.py'")
это пытается выполниться 'cat site.txt'
или 'python3 read.py'
как единственная команда, а не команда + аргументы.
Вместо этого можно сделать
import os,subprocess
os.chdir("/home/andrej/Desctop/.kjk")
subprocess.call(["gnome-terminal", "--", "cat", "site.txt"])
или
import os,subprocess
os.chdir("/home/andrej/Desctop/.kjk")
subprocess.call(["gnome-terminal", "--", "python3", "read.py"])
Ссылка: