วิธีใช้ "with" ใน python เพื่อเปิดไฟล์ (รวมถึงตัวอย่าง)


คุณสามารถใช้ไวยากรณ์ต่อไปนี้เพื่อเปิดไฟล์ใน Python ทำบางอย่างกับไฟล์นั้น แล้วปิดไฟล์:

 file = open (' my_data.csv ')

df = file. read ()

print (df)

file. close ()

ปัญหาของวิธีนี้คือลืมปิดไฟล์ได้ง่ายมาก

แนวทางที่ดีกว่าคือใช้ กับ open ซึ่งใช้ไวยากรณ์พื้นฐานต่อไปนี้:

 with open (' my_data.csv ') as file:

   df = file. read ()

   print (df)

เมื่อใช้วิธีการนี้ ไฟล์ที่คุณใช้งานอยู่จะถูกปิดโดยอัตโนมัติ ดังนั้นคุณจึงไม่จำเป็นต้องจำต้องใช้ file.close()

ตัวอย่างต่อไปนี้แสดงวิธีการใช้งาน ด้วย open ในสถานการณ์ที่แตกต่างกัน

ตัวอย่างที่ 1: ใช้คำสั่ง With เพื่ออ่านไฟล์

รหัสต่อไปนี้แสดงวิธีใช้คำสั่ง “with” เพื่ออ่านไฟล์ใน Python และพิมพ์เนื้อหาของไฟล์:

 with open (' my_data.csv ') as file:

   df = file. read ()

   print (df)

,points, assists, rebounds
0.11.5.6
1,17,7,8
2,16,7,8
3,18,9,10
4,22,12,14
5,25,9,12
6,26,9,12
7,24,4,10
8,29,8,11

เนื้อหาของไฟล์จะถูกพิมพ์และไฟล์จะถูกปิดโดยอัตโนมัติโดยที่เราไม่ต้องพิมพ์ file.close()

ตัวอย่างที่ 2: ใช้คำสั่ง With เพื่อเขียนไฟล์

รหัสต่อไปนี้แสดงวิธีการใช้คำสั่ง “with” เพื่อเขียนข้อความลงในไฟล์:

 with open (' data_out.csv ', ' w ') as file:

    file. write (' Some text to write to CSV file ')

โปรดทราบว่าคำสั่ง ‘ w ‘ ในคำสั่ง open() จะบอก Python ให้ใช้โหมด ‘write’ กับไฟล์ แทนที่จะเป็นโหมดการอ่าน

ตัวอย่างที่ 3: ใช้คำสั่ง With เพื่ออ่านและเขียนไฟล์

นอกจากนี้เรายังสามารถเปิดไฟล์หลายไฟล์พร้อมกันได้ในคำสั่ง “with” เดียว

รหัสต่อไปนี้แสดงวิธีใช้คำสั่ง “with” เพื่อเปิดไฟล์สองไฟล์ อ่านเนื้อหาของไฟล์เดียว จากนั้นเขียนเนื้อหาของไฟล์แรกไปยังไฟล์ที่สอง:

 with open (' my_data.csv ', ' r ') as infile, open (' data_out.csv ', ' w ') as outfile:
    for line in infile:
        outfile. write (line)

หากเรานำทางไปยังตำแหน่งที่เราเขียนว่า “data_out.csv” เราจะสามารถดูเนื้อหาของไฟล์ได้:

โปรดทราบว่าเราสามารถใช้ฟังก์ชัน open() เพื่อเปิดไฟล์ได้มากเท่าที่ต้องการในคำสั่ง “with” เดียว

แหล่งข้อมูลเพิ่มเติม

บทช่วยสอนต่อไปนี้จะอธิบายวิธีดำเนินการทั่วไปอื่นๆ ใน Python:

วิธีอ่านไฟล์ CSV ด้วย Pandas
วิธีอ่านไฟล์ Excel ด้วย Pandas
วิธีอ่านไฟล์ข้อความด้วย Pandas

เพิ่มความคิดเห็น

อีเมลของคุณจะไม่แสดงให้คนอื่นเห็น ช่องข้อมูลจำเป็นถูกทำเครื่องหมาย *