for i in range (k) 코드 사이클 최적화 in python [duplicate]
Oct 26 2020
파이썬을 사용하여 G 코드를 생성하려고합니다. 그레이 스케일 이미지 픽셀 값에 따라 지침을 작성하지만 큰 이미지로 작업해야하는 경우 코드를 컴파일하는 데 시간이 오래 걸립니다. 일부 G 코드 프로그램은 이러한 이미지를 몇 초 안에 처리합니다. 이 프로그램을 더 빠르게 만들 수있는 방법은 무엇입니까?
시간 내 주셔서 감사합니다.
gray_height = gray.shape[0]
gray_length = gray.shape[1]
print("length", gray_length)
print("height", gray_height)
for i in range(gray_length):
j=0
for j in range(gray_height):
k = 'G01 X{}'.format(round(i*0.1,3)) + ' Y{}'.format(round(j*0.1,3)) + '\n' +'G01 Z -10' +'\n' +'G04 {}'.format(round(gray[i,j],2)) +'\n' + 'G01 Z 10' +'\n'
with open("file.txt", "a") as a_file:
a_file.write(k)
답변
kojiro Oct 26 2020 at 15:17
k생성기에서 모든 의 총 값을 나타낼 수 있습니다 .
k = (f'''G01 X{round(i*0.1,3)} Y{round(j*0.1,3)}
G01 Z -10
G04 {round(gray[i,j],2)
G01 Z 10
''' for i in range(gray_length) for j in range(gray_height))
한 번에 파일에 씁니다.
with open('file.txt', 'a') as a_file:
a_file.writelines(k)
(나는 가독성을 크게 향상 시킨다고 생각하기 때문에 str.format 대신 fstrings를 사용했습니다. 모든 최신 버전의 Python에서 작동합니다.)
많은 사람들이 주석에서 언급했듯이 여기서 주요 이점은 각 내부 반복에서 파일을 열고 닫고 다시 열지 않는다는 것입니다.