通过Python运行带有filename变量的shell命令

时间:2012-06-05 18:09:13

标签: python shell

我有包含命名约定的文件

st009_out.abc1.dat
st009_out.abc2.dat
st009_out.abc3.dat 
..................
..................

我正在编写Python代码,我想使用文件中的数据来执行数学函数,并需要从文件中提取第二列。我试过这种方式:

for k in range(1,10):
    file1=open('st009_out.abc'+str(k)+'.dat','r')
    ...........
    os.system("awk '{print $2}' st009_out.abc${k}.pmf > raj.dat")

但这不起作用,因为它没有在shell命令中获取k的值。

我如何进步?

2 个答案:

答案 0 :(得分:2)

尝试

os.system("awk '{print $2}' st009_out.abc"+str(k)+".pmf > raj.dat")

答案 1 :(得分:1)

您使用文件名两次,因此只设置一次

for k in range(1,10):
    name = 'st009_out.abc'+str(k)+'.dat'
    file1=open(name,'r')
    ...........
    os.system("awk '{print $2}' " + name  + " > raj.dat")

或者更好地重写python中的awk