คุณสามารถลบไฟล์ออกจากคอมพิวเตอร์ของคุณโดยใช้ Python os.remove() วิธีการลบไฟล์ Python เดียว os.rmdir() ลบไฟล์หรือไดเร็กทอรี เมธอด shutil.rmtree() จะลบไดเร็กทอรีและไฟล์ที่อยู่ในนั้น
นักพัฒนาใช้ไฟล์ในโปรแกรม Python เพื่อวัตถุประสงค์ที่หลากหลาย เมื่อคุณทำงานกับไฟล์ ฟังก์ชันที่สำคัญที่สุดอย่างหนึ่งที่คุณต้องรู้คือวิธีการลบไฟล์
ตัวอย่างเช่น สมมติว่าคุณกำลังสร้างโปรแกรมที่วิเคราะห์ประสิทธิภาพของดัชนี S&P 500 และเก็บผลลัพธ์ไว้ในไฟล์ คุณอาจต้องการลบไฟล์การวิเคราะห์ที่มีอยู่เพื่อให้มีที่ว่างสำหรับไฟล์ใหม่
ใน Python คุณสามารถใช้ os.remove() วิธีการลบไฟล์และ os.rmdir() วิธีการลบโฟลเดอร์ว่าง หากคุณต้องการลบโฟลเดอร์ที่มีไฟล์ทั้งหมด คุณสามารถใช้ shutil.rmtree() วิธีการ
บทช่วยสอนนี้จะอธิบายวิธีลบไฟล์ Python และโฟลเดอร์โดยใช้ os.remove() , os.rmdir() และ shutil.rmtree() . เราจะพูดถึงตัวอย่างของแต่ละวิธีที่ใช้ในการลบไฟล์หรือโฟลเดอร์
การสอนการลบไฟล์ Python
คุณสามารถลบไฟล์โดยใช้เมธอด Python os.remove(), os.rmdir() และ shutil.rmtree() วิธีการเหล่านี้จะลบไฟล์ ไดเร็กทอรี และโฟลเดอร์ที่มีไฟล์ทั้งหมดตามลำดับ
วิธีการลบไฟล์ใน Python โดยใช้ os.remove()
Python os.remove() วิธีการลบไฟล์ออกจากระบบปฏิบัติการของคุณ os.remove() ลบไฟล์เดียวเท่านั้น ไม่สามารถลบไดเร็กทอรีได้
os โมดูลช่วยให้นักพัฒนาสามารถเชื่อมต่อกับระบบปฏิบัติการและระบบไฟล์ของคอมพิวเตอร์ได้ os.remove() เป็นวิธีการที่รวมอยู่ใน Python os โมดูลที่ให้คุณลบแต่ละไฟล์ได้
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
ก่อนที่เราจะเริ่มทำงานกับวิธีการเหล่านี้ เราต้องนำเข้า os ไลบรารีโดยใช้คำสั่งนำเข้า Python
os ไลบรารีอำนวยความสะดวกในการโต้ตอบกับระบบปฏิบัติการใน Python เราสามารถทำได้โดยใช้รหัสต่อไปนี้:
import os
ตอนนี้เราพร้อมที่จะเริ่มลบไฟล์ใน Python แล้ว os.remove() โมดูลในภาษาไพทอน มาดูไวยากรณ์ของ os.remove() . กัน วิธีเส้นทาง:
import os os.remove(file_location)
os.remove() เมธอดรับหนึ่งพารามิเตอร์:ตำแหน่งของไฟล์ที่คุณต้องการลบ
สมมติว่าเรากำลังสร้างโปรแกรมที่วิเคราะห์เกรดที่นักเรียนได้รับในชั้นเรียนคณิตศาสตร์ในช่วงหนึ่งปี
เราต้องการสร้างไฟล์ชื่อ /home/school/math/final_analysis.csv ด้วยข้อมูลที่วิเคราะห์ของเรา แต่ก่อนที่โปรแกรมของเราจะสร้างไฟล์นั้น เราต้องตรวจสอบให้แน่ใจก่อนว่าไม่มีไฟล์นั้นอยู่
เราสามารถใช้รหัสต่อไปนี้เพื่อลบไฟล์นี้:
import os path = "/home/school/math/final_analysis.csv" os.remove(path) print("final_analysis.csv has been deleted.")
ไฟล์ของเราถูกลบแล้ว เราพิมพ์ข้อความต่อไปนี้ถูกพิมพ์ไปยังคอนโซลโดยใช้คำสั่ง Python print():
final_analysis.csv has been deleted.
ในบรรทัดแรก เรานำเข้า os โมดูลซึ่งมี os.remove() วิธีที่เราต้องการอ้างอิงในโปรแกรมของเรา จากนั้น เรากำหนดตัวแปร Python ที่เรียกว่า path . ตัวแปรนี้เก็บพาธของไฟล์สำหรับไฟล์ที่เราต้องการลบ
จากนั้นเราใช้ os.remove() และระบุ เส้นทาง . ของเรา ตัวแปรเป็นพาธไฟล์ ซึ่งจะลบไฟล์ของเราออก
ลบไดเร็กทอรีว่างโดยใช้ Python os.rmdir()
os.remove() ไม่สามารถใช้เมธอดเพื่อลบโฟลเดอร์ได้ แต่เราสามารถใช้เมธอด os.rmdir() ได้ os.rmdir() เมธอดใช้เพื่อลบไฟล์หรือไดเร็กทอรีว่าง
os.rmdir() ยอมรับหนึ่งพารามิเตอร์:เส้นทางของไฟล์ที่คุณต้องการลบ นี่คือไวยากรณ์สำหรับ os.rmdir() วิธีการ:
import os os.rmdir(file_path)
สมมติว่าเราได้ตัดสินใจจัดเก็บข้อมูลที่ประมวลผลแล้วในโฟลเดอร์ชื่อ final ภายใน/home/school/mathของเรา ไดเร็กทอรี ทุกครั้งที่เรารันโปรแกรม เราต้องการลบ สุดท้าย ไดเร็กทอรีโฟลเดอร์ เนื่องจากโปรแกรมของเราจะสร้างโปรแกรมใหม่ที่มีข้อมูลที่ประมวลผลแล้ว
เราสามารถใช้รหัสต่อไปนี้เพื่อลบ สุดท้าย โฟลเดอร์:
import os path = "/home/school/math/final" os.rmdir(path) print("/home/school/math/final has been deleted.")
รหัสของเราลบไดเรกทอรี /home/school/math/final และส่งคืนข้อความต่อไปนี้ไปยังคอนโซล:
/home/school/math/final has been deleted.
os.rmdir() สามารถใช้เมธอดเพื่อลบไดเร็กทอรีว่างเท่านั้น หากคุณระบุโฟลเดอร์ที่มีไฟล์ ข้อผิดพลาดต่อไปนี้จะถูกส่งคืน:
[Errno 13] Permission denied: '/home/school/math/final' Directory 'final' can not be removed
การจัดการข้อผิดพลาดของ Python os
ในตัวอย่างข้างต้น เราได้ระบุว่า ในบางกรณี ข้อผิดพลาดในการอนุญาตสามารถส่งคืนได้ด้วยอาร์กิวเมนต์ หากเราใช้ os.remove() เพื่อลบไดเร็กทอรี ข้อผิดพลาดจะถูกส่งคืน หากเราใช้ os.rmdir() เพื่อลบไดเร็กทอรีที่มีไฟล์ ข้อผิดพลาดจะถูกส่งคืน
เมื่อคุณกำลังลบไฟล์ในโปรแกรม คุณอาจต้องการฟังก์ชันที่จัดการข้อผิดพลาดของคุณอย่างงดงามหากมีข้อผิดพลาดเกิดขึ้น เราสามารถทำได้โดยใช้ ลอง ยกเว้น บล็อค
นี่คือตัวอย่าง os.rmdir() . ของเรา วิธีข้างต้น แต่มีกลไกจัดการข้อผิดพลาดที่จะพิมพ์ข้อความที่กำหนดไว้ล่วงหน้าหากมีการยกข้อยกเว้น:
import os path = "/home/school/math/final" try: os.rmdir(path) print("/home/school/math/final has been deleted.") except OSError as error: print("There was an error.")
ตอนนี้ หากเราเรียกใช้โค้ดและไม่มีการส่งคืนข้อผิดพลาด ไดเร็กทอรีของเราจะถูกลบออกและข้อความต่อไปนี้จะถูกส่งกลับ:
/home/school/math/final has been deleted.
อย่างไรก็ตาม หากเราเรียกใช้โค้ดของเราและพยายามลบไดเร็กทอรีที่มีไฟล์ออก ตัวอย่างเช่น ข้อความต่อไปนี้จะถูกส่งคืน:
There was an error.
ในโค้ดของเรา เราใช้ try ยกเว้น บล็อก. ขั้นตอนนี้จะรันบรรทัดของโค้ดก่อนใน try บล็อก. หากพบข้อผิดพลาด จะเรียกใช้รหัสภายใน ยกเว้น บล็อก. ในกรณีนี้ ยกเว้น บล็อกจะถูกดำเนินการก็ต่อเมื่อ OSError ถูกยกขึ้น
หากคุณต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการจัดการข้อผิดพลาดโดยใช้ ลองยกเว้น บล็อกใน Python อ่านบทช่วยสอนของเราเกี่ยวกับ Python ลองยกเว้น
ลบไฟล์ Python ที่มีไดเร็กทอรี
shutil ไลบรารี่รวมถึงวิธีการที่เรียกว่า shutil.rmtree() ที่สามารถใช้ลบไดเร็กทอรีที่มีไฟล์อยู่
ไลบรารี Shutil มีฟังก์ชันมากมายที่เกี่ยวข้องกับการทำงานของไฟล์ ในกรณีของเรา เราต้องการเน้นที่ shutil.rmtree() เมธอด ซึ่งจะลบแผนผังไดเร็กทอรีทั้งหมด
นี่คือไวยากรณ์สำหรับ shutil.rmtree() วิธีการ:
import shutil shutil.rmtree(file_path)
ขอให้สังเกตว่าเราได้นำเข้าโมดูล shutil ในรหัสของเรา นั่นเป็นเพราะ shutil.rmtree() เป็นส่วนหนึ่งของไลบรารีภายนอก เช่น os.remove() ดังนั้นเราจึงต้องนำเข้าไลบรารีก่อนจึงจะสามารถใช้งานได้
มาดูตัวอย่างกันเพื่อแสดงให้เห็นว่าวิธีนี้สามารถใช้ได้อย่างไร สมมติว่าโปรแกรมวิเคราะห์เกรดของเราต้องลบไดเรกทอรี สุดท้าย แต่ไดเร็กทอรีนั้นมีไฟล์ที่มีข้อมูลที่ประมวลผลของเราอยู่แล้ว ในการลบไดเร็กทอรีและไฟล์ทั้งหมด เราสามารถใช้รหัสต่อไปนี้:
import shutil path = "/home/school/math/final" shutil.rmtree(path) print("/home/school/math/final has been removed.")
รหัสของเราลบโฟลเดอร์ สุดท้าย และเนื้อหาทั้งหมด จากนั้นพิมพ์ข้อความต่อไปนี้ไปยังคอนโซล:
/home/school/math/final has been removed.
บทสรุป
การลบไฟล์เป็นการดำเนินการทั่วไปใน Python os.remove() สามารถใช้เมธอดเพื่อลบไฟล์เฉพาะ และ os.rmdir() สามารถใช้เมธอดเพื่อลบไดเร็กทอรีว่าง นอกจากนี้ คุณสามารถใช้ shutil.rmtree() วิธีการลบโฟลเดอร์ที่มีไฟล์ตั้งแต่หนึ่งไฟล์ขึ้นไป
หากต้องการเรียนรู้เพิ่มเติมเกี่ยวกับการเขียนโค้ดใน Python โปรดอ่านคู่มือฉบับสมบูรณ์เกี่ยวกับวิธีเรียนรู้ Python