如何更改Django默认主页为自定义主页,更改Djago默认主页为自定义主页,这是开始网页的第一步。......
Linux下用Python获取命令行输出的几个方案
Python在慢慢成为脑影像数据处理中的主流语言。而在做脑影像处理时,不免有时候需要用到一些别人开发好的工具包,而这些包并不都是python包。比如对方采用C写好了算法,我们觉得这个算法很好,用在自己的数据上应该会有不错的结果。我在处理脑影像数据时遇到下面的情况:
需要用的工具包是C写的,那第一件事就是需要在运行该脚本的机器上重新编译该代码为可执行的程序,也就是用`make`了。
产生可执行文件后,在Terminal中执行测试,可以正常运行,发现结果以print到屏幕上的形式给出。
通常我采用python进行脑影像数据的读写,在读取数据后并进行一定的预处理后,需要循环调用上面提及的可执行程序,并获取其输出的结果。这时候如何来实现呢?显然,常用的’os.system()’是搞不定的,引起它只会返回程序的执行状态。下面是在网上查到的几种方案,尝试过都可以work。
下面是测试用的可执行程序的字符串。
mmcmd = ' '.join(['MIxnyn', infile, str(kneig)])
工具/原料
- 电脑
- Linux系统
- Python
方法/步骤
选择要使用的命令行,可以是系统的命令,也可以是从其他渠道获取的已经编译好的命令。这里以MIxnyn为例,搜索MIxnyn MILCA即可。
采用terminal和ipython写程序,打开terminal,输入ipython。
方案一、采用commands包获取命令行的输出信息。
import commands
status, output = commands.getstatusoutput(micmd)
mi = output
方案二、采用subprocess获取命令行的输出信息。
import subprocess
res = subprocess.Popen(micmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE, close_fds=True)
mi = res.stdout.readlines()
mi = float((mi[0].strip()))
方案三、直接采用os获取命令行的输出信息。
import os
p = os.popen(' '.join(['MIxnyn', zwspfile, str(Ndx), str(Ndy), str(N), str(kneig)]))
mi = p.read()
mi = mi.strip()
在实际的应用过程中,可以根据实现环境和需要选择其中一种方案辅助读取命令行的输出。另外,也可以通过先将命令行输出的内容保存到文本文件,然后再进行读取。
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
- 详细阅读
-
python中关于单/双引号和转义引号的区别详细阅读
python中关于单/双引号和转义引号的区别,ytho中单/双引号的作用是将引号中间的符号以字符串的形式传递,而在ytho中它们两个的功能是一样的,只不过在遇到转义引号的时候,两者的使用才有所区别,现......
2023-03-16 289 python
- 详细阅读