0

线条有什么原因吗

out = open("tmp.gp",'w')
out.write('plot sin(x)')
out.close
system('gnuplot -persist tmp.gp')

不工作,但这些(下面)呢?

system('gnuplot -persist tmp.gp')
out = open("tmp.gp",'w')
out.write('plot sin(x)')
out.close

请注意,我不会在程序期间删除 tmp.gp,因此无论哪种情况,文件都存在并且在执行任何这些行之前包含命令“plot sin(x)”(因为该文件存在于上一次运行中)?

我唯一的猜测是这可能是一种竞争条件,但是将 raw_input() 用于消磨时间并没有帮助(见下文)。谢谢你的帮助!

out = open("tmp.gp",'w')
out.write('plot sin(x)')
out.close
raw_input()
system('gnuplot -persist tmp.gp')
4

2 回答 2

3

这是因为您实际上并没有调用 close 函数,请更改out.closeout.close(). 函数调用需要()才能被调用。

于 2013-02-01T01:51:01.043 回答
1

正如其他人提到的那样,您没有正确使用 close() 。还可以处理您应该与语句一起使用的文件:

with open("tmp.gp",'w') as out:
    out.write('plot sin(x)')
    out.close()

这样即使您不会自己关闭文件或写入文件会引发错误,文件仍然会被关闭。

于 2013-02-01T04:26:12.877 回答