python - 将 python 数组传递给 bash 脚本(并将 bash 变量传递给 python 函数)

标签 python bash

我编写了一个 Python 模块,其中包含返回数组的函数。我希望能够访问从 python 模块返回的字符串数组,并在 bash 脚本中迭代,因此我可以迭代数组元素。

例如:

Python 模块 (mymod)

def foo():
    return ('String', 'Tuple', 'From', 'Python' )

def foo1(numargs):
    return [x for x in range(numargs)]

bash 脚本

foo_array  = .... # obtain array from mymod.foo()
for i in "${foo_array[@]}"
do
    echo $i
done


foo1_array = .... # obtain array from mymod.foo1(pass arg count from bash)
for j in "${foo1_array[@]}"
do
    echo $j
done

如何在 bash 中实现它?

版本信息:

python 2.6.5 庆典:4.1.5

最佳答案

第二次尝试 - 这次 shell 首当其冲。

给定包含以下内容的 foo.py:

def foo():
        foo = ('String', 'Tuple', 'From', 'Python' )
        return foo

然后按如下方式编写您的 bash 脚本:

#!/bin/bash
FOO=`python -c 'from foo import *; print " ".join(foo())'`
for x in $FOO:
do
        echo "This is foo.sh: $x"
done

其余部分是从 Python 端驱动集成的第一个答案。

python

import os
import subprocess

foo = ('String', 'Tuple', 'From', 'Python' )

os.putenv('FOO', ' '.join(foo))

subprocess.call('./foo.sh')

庆典

#!/bin/bash
for x in $FOO
do
        echo "This is foo.sh: $x"
done

关于python - 将 python 数组传递给 bash 脚本(并将 bash 变量传递给 python 函数),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11392033/

相关文章:

python - 编译Python,为什么会忽略一些错误的东西?

python - 我偶尔会收到此错误 : sqlite3. 操作错误:无法打开数据库文件

linux - 一行设置环境变量并执行命令,在sh和bash中得到不同的结果

linux - 如何找到只对所有者具有特定权限的文件?

bash - 查找 ISO-8859-1 编码的文件?

linux - 外包bash shell脚本函数

python - Tkinter 图形用户界面主循环 "ex ="

python - Django 中的外部 API 调用缓存

python - 如何加快 PostgreSQL 中的更新/替换操作?

bash - 将 sed 与 ${parameter} 一起使用