我有包含命名约定的文件
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
的值。
我如何进步?
答案 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