我想使一些工作流程自动化,因此我编写了 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"])
参考: