相关疑难解决方法(0)

1910
推荐指数
11
解决办法
182万
查看次数

在Python中运行Bash命令

在我的本地机器上,我运行一个包含这一行的python脚本

bashCommand = "cwm --rdf test.rdf --ntriples > test.nt"
os.system(bashCommand)
Run Code Online (Sandbox Code Playgroud)

这很好用.

然后我在服务器上运行相同的代码,我收到以下错误消息

'import site' failed; use -v for traceback
Traceback (most recent call last):
File "/usr/bin/cwm", line 48, in <module>
from swap import  diag
ImportError: No module named swap
Run Code Online (Sandbox Code Playgroud)

所以我所做的就是插入一个"print bashCommand",它在使用os.system()运行它之前打印我,而不是终端中的命令.

当然,我再次得到错误(由os.system(bashCommand)引起)但在该错误之前它在终端中打印命令.然后我只是复制了那个输出并在终端上做了一个复制粘贴,然后点击回车就可以了......

有没有人知道发生了什么?

python bash

260
推荐指数
8
解决办法
47万
查看次数

使用子进程运行多个bash命令

如果我echo a; echo b在bash中运行,结果将是两个命令都运行.但是,如果我使用subprocess,则运行第一个命令,打印出整个行的其余部分.下面的代码是echos a; echo b而不是a b,如何让它运行这两个命令?

import subprocess, shlex
def subprocess_cmd(command):
    process = subprocess.Popen(shlex.split(command), stdout=subprocess.PIPE)
    proc_stdout = process.communicate()[0].strip() 
    print proc_stdout

subprocess_cmd("echo a; echo b")
Run Code Online (Sandbox Code Playgroud)

python bash subprocess

32
推荐指数
3
解决办法
9万
查看次数

将Python数据列表转换为bash数组

我有一个调用python脚本的bash脚本,如下所示:

OUTPUT=$(python /path/path/script.py attr attr attr);
Run Code Online (Sandbox Code Playgroud)

python脚本将返回如下数据列表:

[item1, item2, item3]
Run Code Online (Sandbox Code Playgroud)

如何将$ OUPUT变量(返回python数据列表的字符串)转换为bash数组?

如果可能的话,我想用bash阅读每个项目.

arrays bash list

11
推荐指数
2
解决办法
8048
查看次数

标签 统计

bash ×3

python ×3

arrays ×1

delete-file ×1

directory ×1

file-io ×1

list ×1

subprocess ×1