Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Python Delete File (Xóa tệp): Hướng dẫn từng bước

Bạn có thể xóa tệp từ máy tính dùng Python. Phương thức os.remove() xóa tệp Python đơn lẻ. os.rmdir() xóa tệp hoặc thư mục. Phương thức shutil.rmtree() xóa thư mục và các tệp chứa trong nó.


Các nhà phát triển dùng tệp trong chương trình Python cho nhiều mục đích. Khi làm việc với tệp, một trong những chức năng quan trọng nhất cần biết là cách xóa tệp.

Ví dụ, giả sử bạn tạo chương trình phân tích hiệu suất chỉ số S&P 500 và lưu kết quả trong tệp. Bạn có thể muốn xóa tệp phân tích hiện có để nhường chỗ cho tệp mới.

Trong Python, bạn có thể dùng phương thức os.remove() xóa tệp, và phương thức os.rmdir() xóa thư mục rỗng. Nếu muốn xóa thư mục với tất cả tệp của nó, dùng phương thức shutil.rmtree().

Hướng dẫn này sẽ thảo luận cách xóa tệp và thư mục Python dùng os.remove(), os.rmdir(), và shutil.rmtree(). Chúng ta cũng sẽ đi qua ví dụ mỗi phương thức dùng để xóa tệp hoặc thư mục.

Hướng dẫn xóa tệp Python

Bạn có thể xóa tệp dùng os.remove(), os.rmdir(), và shutil.rmtree(). Các phương thức này xóa tệp, thư mục, và thư mục với tất cả tệp bên trong, theo thứ tự.

Cách xóa tệp trong Python dùng os.remove()

Phương thức os.remove() Python xóa tệp từ hệ điều hành. os.remove() chỉ xóa một tệp đơn lẻ. Nó không thể xóa thư mục.

Mô-đun os cho phép nhà phát triển giao tiếp với hệ điều hành và hệ thống tệp của máy tính. os.remove() là phương thức trong mô-đun Python os cho phép xóa tệp đơn lẻ.

Trước khi bắt đầu làm việc với các phương thức này, cần nhập thư viện os dùng câu lệnh import Python.

Thư viện os tạo điều kiện tương tác với hệ điều hành trong Python. Chúng ta làm bằng mã sau:

import os

Bây giờ sẵn sàng xóa tệp trong Python module os.remove(). Hãy xem cú pháp phương thức đường dẫn os.remove():

import os
os.remove(file_location)

Phương thức os.remove() nhận một tham số: vị trí tệp bạn muốn xóa.

Giả sử chúng ta tạo chương trình phân tích điểm học sinh lớp toán trong năm. Chúng ta muốn tạo tệp /home/school/math/final_analysis.csv với dữ liệu đã phân tích. Nhưng trước khi chương trình tạo tệp đó, cần đảm bảo nó chưa tồn tại.

Chúng ta có thể dùng mã sau xóa tệp này:

import os
path = "/home/school/math/final_analysis.csv"
os.remove(path)
print("final_analysis.csv has been deleted.")

Tệp đã bị xóa. Thông báo sau in ra bảng điều khiển dùng câu lệnh print() Python:

final_analysis.csv has been deleted.

Dòng đầu, nhập mô-đun os, chứa phương thức os.remove() muốn tham chiếu trong chương trình. Sau đó, định nghĩa biến Python tên path. Biến này lưu đường dẫn tệp cho tệp muốn xóa.

Chúng ta dùng os.remove() chỉ định biến path làm đường dẫn tệp, sẽ xóa tệp của chúng ta.

Xóa thư mục rỗng dùng Python os.rmdir()

Phương thức os.remove() không thể dùng xóa thư mục. Thay vào đó, dùng phương thức os.rmdir(). Phương thức os.rmdir() dùng xóa tệp hoặc thư mục rỗng.

os.rmdir() chấp nhận một tham số: đường dẫn tệp bạn muốn xóa. Cú pháp phương thức os.rmdir():

import os
os.rmdir(file_path)

Giả sử quyết định lưu dữ liệu đã xử lý trong thư mục final trong thư mục /home/school/math. Mỗi lần chạy chương trình, muốn xóa thư mục final. Vì chương trình sẽ tạo thư mục mới với dữ liệu đã xử lý.

Chúng ta có thể dùng mã sau xóa thư mục final:

import os
path = "/home/school/math/final"
os.rmdir(path)
print("/home/school/math/final has been deleted.")

Mã xóa thư mục /home/school/math/final và trả về thông báo:

/home/school/math/final has been deleted.

Phương thức os.rmdir() chỉ dùng xóa thư mục rỗng. Nếu chỉ định thư mục chứa tệp, lỗi sau trả về:

[Errno 13] Permission denied: '/home/school/math/final'
Directory 'final' can not be removed

Xử lý lỗi Python os

Trong ví dụ trên, chúng ta nói trong một số trường hợp, lỗi quyền có thể trả về bởi đối số. Nếu dùng os.remove() xóa thư mục, lỗi trả về. Nếu dùng os.rmdir() xóa thư mục chứa tệp, lỗi trả về.

Khi xóa tệp trong chương trình, bạn có thể muốn hàm xử lý lỗi nhẹ nhàng nếu lỗi nảy sinh. Chúng ta làm bằng khối try except.

Ví dụ os.rmdir() ở trên, nhưng với cơ chế xử lý lỗi in thông báo định nghĩa trước nếu ngoại lệ nảy sinh:

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.")

Bây giờ, nếu chạy mã và không lỗi trả về, thư mục bị xóa và thông báo sau trả về:

/home/school/math/final has been deleted.

Tuy nhiên, nếu chạy mã và cố xóa thư mục chứa tệp, ví dụ, thông báo sau trả về:

There was an error.

Trong mã, dùng khối try except. Thủ tục đầu chạy các dòng trong khối try. Nếu gặp lỗi, chạy mã trong khối except. Trong trường hợp này, khối except chỉ thực thi nếu OSError được ném ra.

Nếu muốn tìm hiểu thêm xử lý lỗi dùng khối try except trong Python, đọc hướng dẫn Python try except của chúng tôi.

Xóa tệp Python kèm thư mục

Thư viện shutil bao gồm phương thức shutil.rmtree() dùng xóa thư mục chứa tệp.

Thư viện shutil cung cấp nhiều hàm liên quan thao tác tệp. Trong trường hợp chúng ta, tập trung vào phương thức shutil.rmtree(), xóa toàn bộ cây thư mục.

Cú pháp phương thức shutil.rmtree():

import shutil
shutil.rmtree(file_path)

Chú ý chúng ta nhập mô-đun shutil trong mã. Đó là vì shutil.rmtree() thuộc thư viện bên ngoài, như os.remove(), nên cần nhập thư viện trước khi dùng.

Hãy đi qua ví dụ minh họa cách dùng phương thức này. Giả sử chương trình phân tích điểm cần xóa thư mục final, nhưng thư mục đó đã bao gồm tệp dữ liệu đã xử lý. Để xóa thư mục và tất cả tệp, dùng mã sau:

import shutil
path = "/home/school/math/final"
shutil.rmtree(path)
print("/home/school/math/final has been removed.")

Mã xóa thư mục final và tất cả nội dung, sau in thông báo:

/home/school/math/final has been removed.

Kết luận

Xóa tệp là thao tác phổ biến trong Python. Phương thức os.remove() dùng xóa tệp cụ thể, os.rmdir() xóa thư mục rỗng. Ngoài ra, dùng shutil.rmtree() xóa thư mục chứa một hoặc nhiều tệp.

Để tìm hiểu thêm lập trình Python, đọc hướng dẫn hoàn chỉnh How to Learn Python.