使用‘gnome-terminal --’在新终端中读取文件

使用‘gnome-terminal --’在新终端中读取文件

我想使一些工作流程自动化,因此我编写了 Python 脚本来实现这一点。我想在新终端中读取文件数据,因此我的 Python 脚本上有一个函数:

os.chdir("/home/andrej/Desctop/.kjk")
os.system(f"gnome-terminal -- 'cat site.txt'")

并且我得到了“没有这样的文件或目录”的错误。当我读到 gnome-terminal 不执行“cat”命令时,我写了另一个 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 终端读取文件,或者我做错了什么?

答案1

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"])

参考:

相关内容