-5

如果我从 Python 解释器或 Python 脚本调用脚本文件,则会收到错误消息'No such file or directory'并且 Linux 脚本不会执行。如果我调用纯 Linux 命令,例如 subprocess.call('ls') 它工作正常。

在'C'中,我会使用:system("");

Python中的等价物是什么?

在我的 Python 脚本中,在 Linux 计算机上,我需要调用执行构建的脚本。 subprocess.call非常适合 Linux shell 命令,但是'No such file or directory'当我调用脚本时我会得到。

这是我调用的 Python 脚本行:

    rtn_code = subprocess.call(['~/WindRiver/workspace/XPedite5570_SMP_VIP/build_MM_VxWorks'])

`build_MM_VxWorks` is a Linux script that uses VxWorks development tools to build a VxWorks kernel.

`build_MM_VxWorks` works okay from the Linux command line.
4

1 回答 1

-1

您可能想尝试pexpect。它在较高级别上模拟 shell 用户输入。它可能有点“hacky”,但是当您需要自动化工作程序时它非常强大。

以下是我如何使用它来读取数据库中的表:

import pexpect, getpass

child = pexpect.spawn('mysql -u root -p')
child.expect('Enter password: ')
password = getpass.getpass("Enter Mysql password for user root \n")
child.sendline(password)
child.sendline("use database")

child.expect('Database changed')

child.sendline('SELECT * FROM table;')
child.interact()

如您所见,模仿用户输入非常容易。

于 2012-10-16T22:31:33.357 回答