所有
我编写了一个小python程序来创建一个文件,该文件用作输入文件来运行名为srce3d的外部程序。这是:
fin = open('eff.pwr.template','r')
fout = open('eff.pwr','wr')
for line in fin:
if 'li' in line:
fout.write( line.replace('-2.000000E+00', `-15.0`) )
else:
fout.write(line)
fin.close
fout.close
os.chmod('eff.pwr',0744)
# call srce3d
os.system("srce3d -bat -pwr eff.pwr >& junk.out")
这不起作用。输入文件被正确写入,但srce3d在读取期间抱怨文件结束。 os.system命令适用于预先存在的文件,无需打开该文件。
感谢您的帮助
答案 0 :(得分:4)
首先,您缺少关闭函数调用。
fin.close() ## the round braces () were missing.
fout.close()
更好的方法是使用上下文。
with open('eff.pwr.template','r') as fin, open('eff.pwr','wr') as fout:
## do all processing here
答案 1 :(得分:1)
您实际上并未关闭该文件 - 您必须致电 file.close
。所以,
fin.close
fout.close
应该是
fin.close()
fout.close()