相关文章推荐
从容的圣诞树  ·  java 把Set<Object>转成 ...·  3 周前    · 
着急的黄瓜  ·  Set<Object>强转为Set<Stri ...·  3 周前    · 
文武双全的大白菜  ·  pip3 install ...·  12 月前    · 
憨厚的硬盘  ·  使用pyqt5 ...·  1 年前    · 

在Python脚本中打开一个终端,在这个新打开的终端中执行终端命令

1 人关注

我需要创建一个Python脚本,在Mac/Linux中打开一个终端窗口,并需要从Python脚本在终端中执行以下命令。

  • Open terminal
  • Execute the command sudo openpyn --init""
  • It will prompt for us to enter password and user name - Pass it from Python script
  • 试着用下面的方法,但它不工作,任何想法或建议,将是很大的帮助。

    from openpyn import openpyn
    import subprocess
    import os
    subprocess.call(["sudo openpyn --init"], shell=True)
    os.system("sudo openpyn --init")
    

    但它没有给出任何结果,或没有按预期工作。

    5 个评论
    请注意,默认情况下, sudo 从/dev/tty读取密码,因为密码没有理由来自其他程序。
    你没有启动一个终端,你启动了一个外壳。也许 os.system("""osascript -e 'tell application "Terminal" to do script "echo hello"'""")
    @MarkSetchell 非常感谢!!os.system("""osascript -e 'tell application "Terminal" to do script "echo hello"")添加了这一行,终端窗口就弹出来了,但是当我试图执行终端命令时,比如os.sysstem("""ls -l"")没有结果,知道我们该怎么做吗?
    @SergeBallesta 我在想,如果我们可以生成一个终端窗口并从PYTHON执行命令,是否可以从那里传递用户名和密码等凭证?
    你又做了一模一样的事情。你没有启动一个终端,你只是在运行 ls 而没有终端。
    python
    python-3.x
    linux
    macos
    Sandeep
    Sandeep
    发布于 2020-01-29
    1 个回答
    Mark Setchell
    Mark Setchell
    发布于 2020-01-29
    已采纳
    0 人赞同

    我不完全理解你的问题的措辞,但如果你想弹出一个终端并运行。

    ls -l