将计算的数据写入文件

时间:2011-07-23 13:59:30

标签: python

大家好,               我正在为我的项目实现一个三次贝塞尔曲线,我必须将计算出的控制点存储在一个文件中。我必须使用gnuplot中的输出文件来查看曲线。在这里的一篇帖子之后,我理解了如何实现,但我对如何将输出转换为文件感到困惑。当我尝试它时,只需写入它计算的最后一个点的值。因为有一个循环所以我应该在生成它时立即将值写入文件中。以下是代码:

import math

points = [(0,0), (5,0), (5,5), (10,5)]

n = 20

for i in range(n) :

        u = i / float(n)

        x = math.pow(1-u,3) * points[0][0] + 3 * u * math.pow(1-u,2) * points[1][0] \
        + 3 * (1-u) * math.pow(u,2) * points[2][0] + math.pow(u,3) * points[3][0]
        y = math.pow(1-u,3) * points[0][1] + 3 * u * math.pow(1-u,2) * points[1][1] \
        + 3 * (1-u) * math.pow(u,2) * points[2][1] + math.pow(u,3) * points[3][1]

        print "(x,y)=", (x, y)     
是的,请有人帮助我。谢谢。

2 个答案:

答案 0 :(得分:1)

f = open('somefile.dat', 'w+')打开(并创建)一个文件。使用f.write(),您可以将字符串写入文件。在您的情况下,您必须使用print来电替换write来电:

import math
points = [(0,0), (5,0), (5,5), (10,5)]
n = 20
f = open('somefile.dat', 'w+')

for i in range(n) :

    u = i / float(n)

    x = math.pow(1-u,3) * points[0][0] + 3 * u * math.pow(1-u,2) * points[1][0] \
    + 3 * (1-u) * math.pow(u,2) * points[2][0] + math.pow(u,3) * points[3][0]
    y = math.pow(1-u,3) * points[0][1] + 3 * u * math.pow(1-u,2) * points[1][1] \
    + 3 * (1-u) * math.pow(u,2) * points[2][1] + math.pow(u,3) * points[3][1]

    f.write("(x,y)=(%f, %f)"% (x, y))

答案 1 :(得分:0)

写入档案:

f = open("fileName", "w+")
f.write(someDataToWrite)

查看更多here