2011-08-03 29 views
1

我写了这段代码,我在这里要做的是写出这个函数生成的值和另一个作为列表存储在timeListparameterList中的值。我不完全应该写在timeList在我猜测的相同功能的值。它应该可以在一个单独的函数中完成。我已经得到curve.dat文件中的timeList。现在,我必须在同一个文件中编写parameterList,但不遵循timeList的值,而是在timeList的右侧。该timeListcurve.dat文件是:将不同功能生成的值写入单个文件

0.07
0.06
0.08
0.12
0.11
0.09
0.14
0.05
0.06

的PARAMETERLIST是:

[0.744527502029805, 1.3466145472841764, 2.8186875392157371, 3.2822440320192392, 7.9272007790523782, 6.0493081375991276, 9.2609232787439613, -611.06135600582172, -399.75236270058838]

现在,我应该有curve.dat文件的内容如下:

 
0.07  0.744527502029805 
0.06  1.3466145472841764 
0.08  2.8186875392157371 
0.12  3.2822440320192392 
0.11  7.9272007790523782 
0.09  6.0493081375991276 
0.14  9.2609232787439613 
0.05  -611.06135600582172 
0.06  -399.75236270058838 

有人能帮助这一点请。谢谢。

def time(transcriptionFile) : 
    with open("transcriptions.txt", "r") as tFile : 
     timeList = [] 
     parameterList = [] 

     for line in tFile : 
      li = line.split() 
      if li : 
       start_time = (int(li[0])/10000000.) 
       end_time = (int(li[1])/10000000.) 
       duration = ((int(li[1]) -int(li[0]))/10000000.) 
       timeList.append(duration) # t(u) values for plotting the bezier curves 

       with open("curve.dat", "w") as outFile: 
        outFile.write("\n".join(str(x) for x in timeList)) 

       poly = poly_coeff(start_time, end_time, duration) 

       Newton(poly, 0.42, parameterList) 
+0

@ F.J:感谢您编辑我的文章。尽管我尝试过,但我自己做不到。 – zingy

回答

3

不要写timeList的文件,而for line in tFile循环中。 注意您打开和关闭文件的次数(非常低效)。还要注意,如果你在'w'(写)模式,而不是'a'(追加)模式打开文件,它将覆盖以前的内容...

而是等待(延迟满足!),直到你有两个timeListparameterList组装。然后做

with open("curve.dat", "w") as outFile: 
    for t,p in zip(timeList,parameterList): 
     outFile.write('{t}\t{p}\n'.format(t=t,p=p)) 
+0

@ unutbu:PERFECT ....非常感谢。 – zingy

相关问题