在我的本地机器上,我运行一个包含这一行的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)引起)但在该错误之前它在终端中打印命令.然后我只是复制了那个输出并在终端上做了一个复制粘贴,然后点击回车就可以了......
有没有人知道发生了什么?
我想知道使用os.system()在Python脚本中调用bash命令是否是一种好的风格.我也想知道这样做是否安全.
我知道如何在Bash和Python中实现我需要的一些功能,但在Bash中实现它更简单,更直观.但是,我觉得编写os.system("bash代码")非常hackish.
具体来说,我想将所有以特定扩展名结尾的文件移动到目录中.
在bash中:*mv .ext/path/to/destination 在Python(伪代码)中:对于目录中的文件:if file.endswith("ext"):将文件移动到目标
在这种情况下,我该怎么办?