สำหรับ i in range (k) code cycle optimization ใน python [duplicate]
Oct 26 2020
ฉันกำลังพยายามสร้าง G-code โดยใช้ python ฉันเขียนคำแนะนำตามค่าพิกเซลของภาพระดับสีเทา แต่ถ้าฉันต้องการทำงานกับภาพขนาดใหญ่จะต้องใช้เวลาตลอดไปในการรวบรวมรหัส โปรแกรม G-code บางโปรแกรมประมวลผลภาพเหล่านี้ในไม่กี่วินาที ฉันจะทำให้โปรแกรมนี้เร็วขึ้นได้อย่างไร
ขอขอบคุณสำหรับเวลาของคุณ.
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)
(ฉันใช้ fstrings แทน str.format เพราะฉันคิดว่ามันช่วยเพิ่มความสามารถในการอ่านได้อย่างมากมันใช้ได้กับ Python เวอร์ชันล่าสุดทั้งหมด)
สิ่งที่ได้รับหลัก ๆ ตามที่หลาย ๆ คนกล่าวถึงในความคิดเห็นคือคุณจะไม่เปิดปิดและเปิดไฟล์อีกครั้งในการวนซ้ำภายในแต่ละครั้ง