我可以使用Shell或Python实现调用C程序并给出它所需的所有参数吗?

2024-09-28 17:00:03 发布

您现在位置:Python中文网/ 问答频道 /正文

我遇到了一个问题,我不知道这是否可以在像Bash或Python这样的Shell中实现。你知道吗

我需要运行一个C程序好几次,程序是“atompot”为TEM图像模拟。如果我运行这个程序

./atompot

其输出如下:

atompot version dated 8-oct-2012 EJK
Copyright (C) 1998-2010 Earl J. Kirkland
This program is provided AS-IS with ABSOLUTELY NO WARRANTY
under the GNU general public license

calculate projected atomic potentials (to use in multislice)
using FFTW

Name of file with input crystal data :

然后我需要输入crtstal数据文件,比如:

stra.dat

然后你可以得到:

Name of file to get binary output of atomic potential :

然后我给这个名字:

straa.tif   

然后你会得到:

Real space dimensions in pixels Nx, Ny :

你的回答是:

512 512

然后输出如下:

 Replicate unit cell by NCELLX,NCELLY,NCELLZ :

回答:

  8 8 8

询问:

  Do you want to add thermal displacements to atomic coord.? (y/n) :

回答:

  n

程序是这样的。 我可以使用Shell或Python实现调用C程序并给出使程序自动运行所需的所有参数吗?你知道吗

例如,我可以将单位单元格的形式从8改为100。 其他参数保持不变。似乎所有这些都可以在一个Sheel脚本中完成,但如何实现一些C程序,给你什么输入指令。你知道吗

谢谢你!你知道吗


Tags: oftonamein图像程序bash参数
2条回答

您可以创建如下shell脚本:

echo -e 'stra.dat\nstraa.tif\n...' | ./atompot

要获得更多的控制,您可能需要查看^{}。你知道吗

如果程序从stdin读取,只需将所有内容放入一个文件:

stra.dat
straa.tif
512 512
8 8 8
n

以及跑步:

./atompot < filename

如果您想做一些更复杂的事情(即解析输出或实现分支),您可以研究子流程.Popen在python中。你知道吗

相关问题 更多 >