通过 shell 脚本在 python 脚本之间传递变量
Passing variable between python scripts through shell script
我想不出一种方法来做我想做的事情,希望得到一些建议。我正在处理计算集群上的数据,并希望在单独的计算节点上处理单个文件。我现在的工作流程如下所示:
**file1.py**
Get files, parameters, other info from user
Then Call: file2.sh
**file2.sh**
Submit file3.py to computing node
**file3.py**
Process input file with parameters given
我想做的是调用 file2.sh 并一次将每个输入数据文件传递给它,这样就有多个 file3.py 运行 的实例,每个文件一个.有什么好的方法吗?
我想问题的根源在于,如果我要遍历 file1.py 中的输入文件列表,我不知道如何将该信息传递给 file2.sh 并且然后到 file3.py.
根据这个描述,我认为最直接的方法是直接从 Python 调用 file2.sh。
status, result = commands.getstatusoutput("file2.sh" + arg_string)
这足以让您动起来吗?这些节点是否足够熟悉,足以让一个节点直接在另一个节点上启动命令?如果没有,您可能需要考虑在 Linux 上查找 "interprocess communication"。如果它们甚至不在同一个 Internet 节点上,您可能需要 REST 命令(post 和获取操作),从那里事情会增加更多的开销。
我想不出一种方法来做我想做的事情,希望得到一些建议。我正在处理计算集群上的数据,并希望在单独的计算节点上处理单个文件。我现在的工作流程如下所示:
**file1.py**
Get files, parameters, other info from user
Then Call: file2.sh
**file2.sh**
Submit file3.py to computing node
**file3.py**
Process input file with parameters given
我想做的是调用 file2.sh 并一次将每个输入数据文件传递给它,这样就有多个 file3.py 运行 的实例,每个文件一个.有什么好的方法吗?
我想问题的根源在于,如果我要遍历 file1.py 中的输入文件列表,我不知道如何将该信息传递给 file2.sh 并且然后到 file3.py.
根据这个描述,我认为最直接的方法是直接从 Python 调用 file2.sh。
status, result = commands.getstatusoutput("file2.sh" + arg_string)
这足以让您动起来吗?这些节点是否足够熟悉,足以让一个节点直接在另一个节点上启动命令?如果没有,您可能需要考虑在 Linux 上查找 "interprocess communication"。如果它们甚至不在同一个 Internet 节点上,您可能需要 REST 命令(post 和获取操作),从那里事情会增加更多的开销。