我编写了这段代码,我在这里要做的是编写从这个函数生成的值和另一个在timeList
中存储为列表的值
parameterList
。我不应该在同一个函数中写timeList
的值。它应该可以在一个单独的函数中完成。我已在timeList
文件中获得了curve.dat
。现在我必须在同一个文件中写parameterList
但不遵循timeList
的值,而是在timeList
的右侧。 timeList
文件中的curve.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 :(得分:3)
在timeList
循环内部,不要将for line in tFile
写入文件。
请注意您打开和关闭文件的次数(非常低效)。另请注意,如果以'w'
(写入)模式而不是'a'
(追加)模式打开文件,它将覆盖以前的内容......
相反,等待(延迟满足!),直到你同时组装timeList
和parameterList
。然后做
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))