gpt4 book ai didi

python - 如何解决这个 bash python 交互?

转载 作者:行者123 更新时间:2023-12-01 04:26:34 24 4
gpt4 key购买 nike

我有3个文件,我们来逐一查看。

params.conf

[a]
[b]
[c]
[d]
[e]

解析.py

from ConfigParser import SafeConfigParser

parser = SafeConfigParser()
parser.read('params.conf')

lst=parser.sections()
print lst

demo.sh

#! /bin/bash
value=$(python parsing.py)
echo "$value"

运行 demo.sh 后,我应该得到输出 ['a','b','c','d','e'] 和我明白了。

但是,当我进入下一个级别时,有几个问题。

  • 我想使用列表元素,所以此时我需要使用 sed 在我不想要的 bash 文件中解析它,而是我喜欢访问 list 作为 bash 中的数组,以便我稍后可以使用它。

  • 目前我正在打印一个列表,但我不能总是这样做。因为我的 python 文件中可能有多个 list,但我无法打印每个列表并从 bash 检索它们。那么,我可以以某种方式从Python返回一个变量到bash吗?我正在从另一个bash文件中搜索source一个bash文件。

  • 最终我希望在我的 python 文件中包含多个函数,并尝试从 bash 访问特定函数的返回值。我能做到吗?就像调用整个 python 文件一样,我可以从 python 文件调用特定的函数吗?

最佳答案

您不需要使用 sed 来解析 python 脚本的输出。

在打印输出之前,在 python 脚本中,将列表转换为空格分隔的字符串(希望列表中没有任何包含空格的项目)

print " ".join(lst)

这个输出可以在 shell 中轻松循环。对我来说,以下代码给出以下输出。

#! /bin/bash
lst=$(python parsing.py)
for i in $lst
do
echo $i
done

params.conf 和你的一样...

输出

a
b
c
d
e

希望这有助于解决您的一些问题..

还可以通过 shell 脚本调用 python 中的特定函数,如下所示...

具有多种功能的python文件

import sys

def foo():
print 'i am foo'

def func():
print 'i am func'

def bye():
print 'i am bye'

if __name__ == "__main__":
if len(sys.argv)==2:
x = getattr(sys.modules[__name__], sys.argv[1])
x()

和 shell 脚本(我使用命令行参数来命名 python 函数)

#! /bin/bash
echo $(python params.py $1)

输出...

# ./demo.sh foo
i am foo
# ./demo.sh func
i am func
# ./demo.sh bye
i am bye

关于python - 如何解决这个 bash python 交互?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33052438/

24 4 0
文章推荐: jquery - 绑定(bind)/取消绑定(bind)计时器在 jquery 中不起作用。会解除绑定(bind)但重新激活按钮失败
文章推荐: python - 将字符串列表解压到另一个字符串列表中
文章推荐: Jquery:根据
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com