2011-08-03 5 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' (추가) 모드에서 파일을 열 경우 이전 내용을 덮어 알 ...

대신, 잠깐 당신이 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)) 
+0

@ unutbu : PERFECT .... 대단히 감사합니다. – zingy

관련 문제