0

我有命名约定的文件

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")

但这不起作用,因为它没有采用kshell 命令中的值。

我如何进步?

4

2 回答 2

2

尝试

os.system("awk '{print $2}' st009_out.abc"+str(k)+".pmf > raj.dat")
于 2012-06-05T18:17:50.473 回答
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

于 2012-06-05T19:40:11.183 回答