【问题标题】:Running bash-commands with keeping directory-changes运行 bash-commands 并保持目录更改
【发布时间】:2017-12-01 18:18:23
【问题描述】:

您可以链接命令以允许目录更改:

from os import system

system(
    "cd ./assets/" "; "
    "bash loadData.sh" ";"
    # here should come tasks in the python-source
    "ls -al >> ./../directory" "; "
)

但是,在 python 中完成一些计算之后,如何执行第二个命令?/如何存储 bash-context 并在以后重用它?

编辑:

输出可以显示到标准输出或来自子进程的管道对象,但 bash 代码中的目录更改和 变量分配 应以任何形式保存(我想执行真正的 bash-commands 来改变目录并且不想使用os.chdir)

【问题讨论】:

  • 谷歌subprocess模块,你可以保存bash等的输出
  • 我想你想做什么不是很清楚。您可能需要改进您的问题。

标签: python bash command-line


【解决方案1】:

我不确定您到底想做什么,但您甚至可以使用 subprocess 进行非常复杂的变量赋值,如下所示:

import subprocess as sp

p = sp.Popen("cd assets; var=$(bash loadData.sh); var2=$(python -c \"print '${var}123'\"); echo ${var2}", stdout=sp.PIPE, shell=True)
output = p.stdout.read()
print output

【讨论】:

  • 输出是通过管道传输的,但主要问题仍然存在,您不能仅通过管道传输程序来保持变量赋值。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-06-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-07
  • 2021-12-14
  • 1970-01-01
相关资源
最近更新 更多