โดยทั่วไปฉันต้องการทำสิ่งที่ตรงกันข้ามกับสิ่งที่ผู้ชายคนนี้ทำ ... ฮิฮิ
Python Script: พิมพ์บรรทัดใหม่ทุกครั้งเพื่อเชลล์แทนที่จะอัปเดตบรรทัดที่มีอยู่
ฉันมีโปรแกรมที่บอกฉันว่ามันไปได้ไกลแค่ไหน
for i in some_list:
#do a bunch of stuff.
print i/len(some_list)*100," percent complete"
ดังนั้นถ้า len (some_list) เป็น 50 ฉันจะพิมพ์บรรทัดสุดท้ายได้ 50 ครั้ง ฉันต้องการพิมพ์หนึ่งบรรทัดและอัปเดตบรรทัดนั้นต่อไป ฉันรู้ว่านี่อาจเป็นคำถามที่แย่ที่สุดที่คุณจะอ่านทั้งวัน ฉันไม่สามารถหาคำสี่คำที่ฉันต้องใส่ใน Google เพื่อให้ได้คำตอบ
อัพเดท! ฉันลองทำตามคำแนะนำของ mvds ซึ่งคิดว่าถูกต้อง รหัสใหม่
print percent_complete," \r",
เปอร์เซ็นต์ที่สมบูรณ์เป็นเพียงสตริง (ฉันเขียนบทคัดย่อครั้งแรกตอนนี้ฉันพยายามจะเป็นตัวอักษร) ผลลัพธ์ตอนนี้คือรันโปรแกรมไม่พิมพ์อะไรเลยจนกว่าโปรแกรมจะจบลงจากนั้นพิมพ์ "เสร็จสมบูรณ์ 100 เปอร์เซ็นต์" ในบรรทัดเดียว
หากไม่มีการคืนแคร่ (แต่มีเครื่องหมายจุลภาคครึ่งหนึ่งของคำแนะนำของ mvds) จะไม่พิมพ์อะไรเลยจนกว่าจะสิ้นสุด แล้วพิมพ์:
0 percent complete 2 percent complete 3 percent complete 4 percent complete
และอื่น ๆ ตอนนี้ปัญหาใหม่คือด้วยลูกน้ำมันจะไม่พิมพ์จนกว่าโปรแกรมจะเสร็จสิ้น
ด้วยการกลับแคร่และไม่มีลูกน้ำมันจะทำงานเหมือนกับไม่มีทั้งคู่
sys.stdout.isatty()
เพื่อไม่ให้คายสิ่งเหล่านี้ออกมาเมื่อไม่ได้ทำงานในเทอร์มินัล