2016-12-09 3 views
0

아래 코드를 가지고 있으며 원하는대로 작동합니다. 내가 바꾸고 싶은 것은 for 루프를 추가하는 것이다. 이 행에주의하십시오.루프를 통해 파일을 반복하십시오.

node = import_file("../Angle1/1eV/cascade.dump",multiple_frames = True) 

여기에 1eV가 있습니다. 나는 1에서 10eV까지 반복하고 싶다. 어떻게 for 루프를 삽입하여 1에서 100 eV로 바꿀 수 있습니까? 그래서 수동으로 바로 잡을 필요가 없습니다.

# Import OVITO modules. 
from ovito.io import * 
from ovito.modifiers import * 

# Import NumPy module. 
import numpy 
import sys 



node = import_file("../Angle1/1eV/cascade.dump",multiple_frames = True) 
ovito.dataset.anim.current_frame = 1 

mod = WignerSeitzAnalysisModifier(per_type_occupancies = True) 
mod.reference.load("position_perfect_300.dump") 
node.modifiers.append(mod) 
node.compute() 
node.modifiers.append(SelectExpressionModifier(expression = 'ParticleType==1 && Occupancy.1==0 && Occupancy.2==0')) 
node.compute() 

f=open("1.out",'w') 
sys.stdout = f 


print("Number of O vacant sites: %i" % numpy.count_nonzero(node.output.particle_properties['Selection'])) 

f.close() 

답변

2

간단한 : 당신의 루프 그때 나는 그래서 sys.stdout을 무시하지 않습니다 변경할 것을 (최종 print 문을주게됩니다 같은 들여 쓰기를 유지, 다음과 같이 시작하게, 나는 루프 그래서 전에 파일 을 엽니 다 메시지를 덮어 쓰지 않음) :

with open("1.out",'w') as f: 

    for i in range(1,11): 
     node = import_file("../Angle1/{}eV/cascade.dump".format(i),multiple_frames = True) 
     ovito.dataset.anim.current_frame = 1 

     mod = WignerSeitzAnalysisModifier(per_type_occupancies = True) 
     mod.reference.load("position_perfect_300.dump") 
     node.modifiers.append(mod) 
     node.compute() 
     node.modifiers.append(SelectExpressionModifier(expression = 'ParticleType==1 && Occupancy.1==0 && Occupancy.2==0')) 
     node.compute() 

     f.write("Number of O vacant sites: %i\n" % numpy.count_nonzero(node.output.particle_properties['Selection'])) 
+0

for 문을 어떻게 종료하여 루프백합니까? 그것은 이미 그때 그때 내 인쇄 진술 때마다 덮어 쓰고지고 있다고 생각합니다 –

+0

한 번 루프를 통해 내가 아래 명령을 수행하고 내 파일에 쓸 필요가있다. 마지막에는 파일에 여러 가지가 있어야합니다. 다음 파일로 이동하기 전에 아래 명령을 수행하는 것을 알고 있습니까? 나는 그것이 현재 설정되어있는 것처럼 느껴진다. 단지 모든 파일을로드하고 마지막 파일을 계산하지만 확실하지는 않다. –

+0

내 편집을 확인하십시오. 들여 쓰기는 파이썬에서 매우 중요합니다. –

관련 문제