Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เขียนไฟล์ในพื้นหลัง (background) ใน Python

ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับ multi-threading ใน Python มันช่วยให้เราทำหลายงานพร้อมกันได้ Python มีโมดูลชื่อ threading สำหรับการทำงานหลายอย่างพร้อมกัน

เราจะดูวิธีการทำงานโดยการเขียนข้อมูลลงไฟล์ในพื้นหลังขณะคำนวณผลรวมขององค์ประกอบในรายการ มาดูขั้นตอนที่เกี่ยวข้องในโปรแกรม

  • นำเข้าโมดูล threading

  • สร้างคลาสโดยสืบทอดจากคลาส threading.Thread

  • เขียนโค้ดไฟล์ภายในเมธอด run ในคลาสข้างต้น

  • เริ่มต้นข้อมูลที่จำเป็น

  • เขียนโค้ดคำนวณผลรวมของตัวเลขในรายการ

ตัวอย่าง

# นำเข้าโมดูล
import threading

# สร้างคลาสโดยสืบทอดจาก threading.Thread base class
class MultiTask(threading.Thread):
    def __init__(self, message, filename):
        # เรียกใช้ Base class
        threading.Thread.__init__(self)
        # เริ่มต้นตัวแปรให้กับคลาส
        self.message = message
        self.filename = filename

    # เมธอด run ที่ทำงานในพื้นหลัง
    def run(self):
        # เปิดไฟล์ในโหมดเขียน
        with open(filename, 'w+') as file:
            file.write(message)
        print("Finished writing to a file in background")

# โค้ดเริ่มต้น
if __name__ == '__main__':
    # เริ่มต้นตัวแปร
    message = "We're from Tutorialspoint"
    filename = "tutorialspoint.txt"
    # สร้างอินสแตนซ์ของคลาสข้างต้นสำหรับเขียนในพื้นหลัง
    file_write = MultiTask(message, filename)
    # เริ่มงานในพื้นหลัง
    file_write.start()
    # งานอีกอย่างหนึ่ง
    print("It will run parallelly to the above task")
    nums = [1, 2, 3, 4, 5]
    print(f"Sum of numbers 1-5: {sum(nums)}")
    # เสร็จสิ้นงานพื้นหลัง
    file_write.join()

It will run parallelly to the above task

Sum of numbers 1-5: 15

Finished writing to a file in background

ผลลัพธ์

คุณสามารถตรวจสอบไดเรกทอรีสำหรับไฟล์ ถ้าคุณรันโค้ดข้างต้น คุณจะได้ผลลัพธ์ดังนี้

It will run parallelly to the above task
Sum of numbers 1-5: 15
Finished writing to a file in background

สรุป

หากคุณมีข้อสงสัยจากบทช่วยสอนนี้ ให้ระบุในส่วนความคิดเห็น