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

Python ลบไฟล์:คำแนะนำทีละขั้นตอน

คุณสามารถลบไฟล์ออกจากคอมพิวเตอร์ของคุณโดยใช้ 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