Đôi khi chúng ta cần xóa các tệp khỏi một thư mục không còn cần thiết. Ví dụ: bạn đang lưu trữ dữ liệu hàng tồn kho hàng tháng trong một tệp. Bạn có thể muốn xóa mọi tệp dữ liệu hiện có trước khi tạo tệp dữ liệu mới mỗi tháng
Ngoài ra, sau một thời gian, ứng dụng cần xóa các tệp nhật ký cũ của nó
Trong hướng dẫn này, chúng tôi sẽ sử dụng các hàm Python sau để xóa tệp và thư mục
FunctionDescriptionos.remove[path, *, dir_fd = None]
4Xóa tệp đã chỉ định. os.remove[path, *, dir_fd = None]
5Xóa tệp đã chỉ định. Hữu ích trong môi trường UNIX. os.remove[path, *, dir_fd = None]
6Xóa tệp hoặc liên kết tượng trưng trong đường dẫn được đề cậpos.remove[path, *, dir_fd = None]
7Xóa thư mục trống. os.remove[path, *, dir_fd = None]
8Hủy liên kết và xóa thư mục trống. os.remove[path, *, dir_fd = None]
9Xóa một thư mục và các tập tin chứa trong đó. Chức năng xóa tập tin và thư mụcGhi chú
- Tất cả các chức năng trên xóa các tập tin và thư mục vĩnh viễn
- Mô-đun pathlib đã được thêm vào Python 3. 4. Thích hợp khi ứng dụng của bạn chạy trên hệ điều hành khác
Mục lục
Cách xóa tệp trong Python
Python cung cấp hỗ trợ mạnh mẽ cho việc xử lý tệp. Chúng tôi có thể xóa các tệp bằng các phương pháp khác nhau và phương pháp được sử dụng phổ biến nhất là phương pháp
import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
0. Dưới đây là các bước để xóa một tập tin- Tìm đường dẫn của một tập tin
Chúng tôi có thể xóa tệp bằng cả đường dẫn tương đối và đường dẫn tuyệt đối. Đường dẫn là vị trí của tệp trên đĩa.
Đường dẫn tuyệt đối chứa danh sách thư mục đầy đủ cần thiết để định vị tệp. Và Một đường dẫn tương đối bao gồm thư mục hiện tại và sau đó là tên tệp.
Ví dụ,
1 là một đường dẫn tuyệt đối để khám phá các mẫu. txt.import os file_path = r'E:\demos\files\sales_2.txt' if os.path.exists[file_path]: os.remove[file_path] else: print["The system cannot find the file specified"]
- sử dụng hệ điều hành. hàm remove[] để xóa File
Mô-đun HĐH trong Python cung cấp các phương thức để tương tác với Hệ điều hành trong Python. Phương thức
2[] trong mô-đun này được sử dụng để xóa/xóa đường dẫn tệp.import os file_path = r'E:\demos\files\sales_2.txt' if os.path.exists[file_path]: os.remove[file_path] else: print["The system cannot find the file specified"]
Đầu tiên, nhập mô-đun os và Truyền đường dẫn tệp tới hàm
4 để xóa tệp khỏi đĩaos.remove[path, *, dir_fd = None]
- Sử dụng chức năng rmtree[] của Shutil module để xóa một thư mục
Nhập mô-đun Shutil và chuyển đường dẫn thư mục tới Hàm
4 để xóa một thư mục và tất cả các tệp có trong đóimport os file_path = r'E:\demos\files\sales_2.txt' if os.path.exists[file_path]: os.remove[file_path] else: print["The system cannot find the file specified"]
Ví dụ. Xóa tệp trong Python
Đoạn mã sau giải thích cách xóa tệp có tên “sales_1. txt”
Giả sử chúng ta muốn xóa sales_1. txt từ thư mục
import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
5. Ngay bây giờ, thư mục này chứa các tệp sau- doanh số_1. txt
- doanh số_2. csv
- lợi nhuận. txt
- doanh thu. txt
Xóa tệp có đường dẫn tương đối
os.remove[path, *, dir_fd = None]
2Xóa tệp có đường dẫn tuyệt đối
os.remove[path, *, dir_fd = None]
3Mã của chúng tôi đã xóa hai tệp. Đây là danh sách các tệp còn lại trong thư mục của chúng tôi
- lợi nhuận. txt
- doanh thu. txt
Hiểu phương pháp import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
0
import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
cú pháp
os.remove[path, *, dir_fd = None]
Truyền đường dẫn tệp tới hàm
os.remove[path, *, dir_fd = None]
4 để xóa tệp khỏi đĩaSau đây là các tham số mà chúng ta cần phải vượt qua
- đường dẫn – Đường dẫn tương đối hoặc tuyệt đối cho đối tượng tệp thường ở định dạng chuỗi
- dir_fd – Một thư mục đại diện cho vị trí của tập tin. Giá trị mặc định là không và giá trị này bị bỏ qua trong trường hợp đường dẫn tuyệt đối
Nếu đường dẫn tệp đã truyền là một thư mục, một
import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
8 sẽ xuất hiệnKiểm tra xem tệp có tồn tại trước khi xóa không
Một
import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
9 sẽ được nâng lên nếu tệp không được tìm thấy trong đường dẫn, vì vậy nên kiểm tra xem tệp có tồn tại trước khi xóa tệp khôngĐiều này có thể đạt được theo hai cách
- Hàm
90 để kiểm tra xem tệp có tồn tại khôngos.remove[path, *, dir_fd = None]
- Sử dụng xử lý ngoại lệ
ví dụ 1
import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
Ghi chú. Bạn nên xử lý ngoại lệ khi kiểm tra tệp vì tệp có thể bị xóa hoặc thay đổi giữa các lần. Đó là cách Pythonic để xóa một tệp có thể tồn tại hoặc không tồn tại
ví dụ 2. xử lý ngoại lệ
os.remove[path, *, dir_fd = None]
9Xóa tệp bằng phương pháp os.remove[path, *, dir_fd = None]
91
os.remove[path, *, dir_fd = None]
Nếu bạn đang sử dụng hệ điều hành UNIX, hãy sử dụng phương thức
os.remove[path, *, dir_fd = None]
92 có sẵn trong mô-đun os.remove[path, *, dir_fd = None]
93, phương thức này tương tự như phương thức remove[] ngoại trừ việc nó quen thuộc hơn trong môi trường os.remove[path, *, dir_fd = None]
94os.remove[path, *, dir_fd = None]
6- đường dẫn – Đường dẫn tương đối hoặc tuyệt đối cho đối tượng tệp thường ở định dạng chuỗi
- dir_fd – Một thư mục đại diện cho vị trí của tập tin. Giá trị mặc định là không và giá trị này bị bỏ qua trong trường hợp đường dẫn tuyệt đối
Hãy cho chúng tôi xem mã để xóa tệp “lợi nhuận. txt” nằm trong đường dẫn thực thi hiện tại
os.remove[path, *, dir_fd = None]
7Mô-đun Pathlib để xóa tệp
Mô-đun pathlib cung cấp các lớp đại diện cho các đường dẫn hệ thống tệp với ngữ nghĩa phù hợp với các hệ điều hành khác nhau. Như vậy, bất cứ khi nào chúng ta cần làm việc với các tệp trong nhiều môi trường, chúng ta có thể sử dụng mô-đun pathlib
Mô-đun pathlib đã được thêm vào Python 3. 4. Phương thức
os.remove[path, *, dir_fd = None]
95 trong mô-đun pathlib được sử dụng để xóa tệp trong đường dẫn được đề cậpNgoài ra, nó cần thêm một tham số, cụ thể là
os.remove[path, *, dir_fd = None]
96. Nếu tham số được đặt thành True, thì mô-đun pathlib sẽ bỏ qua Lỗi không tìm thấy tệp. Ngược lại, nếu đường dẫn không tồn tại, thì import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
9 sẽ được nâng lênHãy cho chúng tôi xem mã để xóa tệp “lợi nhuận. txt” có trong đường dẫn thực thi hiện tại
- Nhập mô-đun pathlib
- Sử dụng phương pháp
98 để đặt đường dẫn tệpos.remove[path, *, dir_fd = None]
- Tiếp theo, để xóa một tệp, hãy gọi phương thức
92 trên đường dẫn tệp đã choos.remove[path, *, dir_fd = None]
os.remove[path, *, dir_fd = None]
3Xóa tất cả các tệp khỏi một thư mục
Đôi khi chúng tôi muốn xóa tất cả các tệp khỏi một thư mục mà không xóa thư mục. Thực hiện theo các bước dưới đây để xóa tất cả các tệp khỏi một thư mục
- Lấy danh sách các tệp trong một thư mục bằng hàm
60. Nó trả về một danh sách chứa tên của các tệp và thư mục trong thư mục đã choos.remove[path, *, dir_fd = None]
- Lặp lại danh sách bằng vòng lặp for để truy cập từng tệp một
- Xóa từng tệp bằng cách sử dụng
0import os file_path = r'E:\demos\files\sales_2.txt' if os.path.exists[file_path]: os.remove[file_path] else: print["The system cannot find the file specified"]
Ví dụ
os.remove[path, *, dir_fd = None]
6Xóa một Thư mục trống [Thư mục] bằng cách sử dụng os.remove[path, *, dir_fd = None]
62
os.remove[path, *, dir_fd = None]
Mặc dù luôn có trường hợp một thư mục có một số tệp, nhưng đôi khi có những thư mục hoặc thư mục trống không còn cần thiết nữa. Chúng ta có thể xóa chúng bằng cách sử dụng phương pháp
os.remove[path, *, dir_fd = None]
62 có sẵn trong cả mô-đun os và mô-đun pathlibSử dụng phương pháp
os.remove[path, *, dir_fd = None]
64Để xóa các thư mục trống, chúng ta có thể sử dụng chức năng
os.remove[path, *, dir_fd = None]
62 từ mô-đun osos.remove[path, *, dir_fd = None]
1Sau đây là các tham số mà chúng ta cần truyền cho phương thức này
66 – Đường dẫn tương đối hoặc tuyệt đối cho đối tượng thư mục thường ở định dạng chuỗios.remove[path, *, dir_fd = None]
67 – Thư mục tập tin. Giá trị mặc định là không và giá trị này bị bỏ qua trong trường hợp đường dẫn tuyệt đốios.remove[path, *, dir_fd = None]
Ghi chú. Trong trường hợp nếu thư mục không trống thì
import os
file_path = r'E:\demos\files\sales_2.txt'
if os.path.exists[file_path]:
os.remove[file_path]
else:
print["The system cannot find the file specified"]
8 sẽ bị némos.remove[path, *, dir_fd = None]
30đầu ra
os.remove[path, *, dir_fd = None]
31Sử dụng
os.remove[path, *, dir_fd = None]
69Phương thức
os.remove[path, *, dir_fd = None]
62 trong mô-đun os.remove[path, *, dir_fd = None]
71 cũng được sử dụng để loại bỏ hoặc xóa một thư mục trống- Đầu tiên đặt đường dẫn cho thư mục
- Tiếp theo, gọi phương thức
62 trên đường dẫn đóos.remove[path, *, dir_fd = None]
Hãy để chúng tôi xem một ví dụ để xóa một thư mục trống có tên là 'Hình ảnh'
os.remove[path, *, dir_fd = None]
32Xóa một thư mục không trống bằng cách sử dụng Shutil
Đôi khi chúng ta cần xóa một thư mục và tất cả các tệp chứa trong đó. Sử dụng phương pháp
os.remove[path, *, dir_fd = None]
73 của mô-đun Shutil để xóa một thư mục và tất cả các tệp khỏi nó. Xem xóa một thư mục không trống trong PythonMô-đun đóng cửa của Python giúp thực hiện các thao tác cấp cao trong tệp hoặc bộ sưu tập tệp như sao chép hoặc xóa nội dung
os.remove[path, *, dir_fd = None]
33Thông số
66 – Thư mục cần xóa. Các liên kết tượng trưng đến một thư mục không được chấp nhậnos.remove[path, *, dir_fd = None]
75 – Nếu cờ này được đặt thành true, thì các lỗi do xóa không thành công sẽ bị bỏ qua. Nếu được đặt thành true, lỗi sẽ được xử lý bởi hàm được truyền trong thuộc tính một lỗios.remove[path, *, dir_fd = None]
Ghi chú. Hàm ____273 xóa thư mục đã chỉ định và tất cả các thư mục con của nó theo cách đệ quy
Xem xét ví dụ sau để xóa thư mục 'báo cáo' chứa tệp hình ảnh và tệp pdf
os.remove[path, *, dir_fd = None]
34đầu ra
os.remove[path, *, dir_fd = None]
35Nhận thông báo ngoại lệ thích hợp trong khi xóa một thư mục không trống
Để nhận được thông báo ngoại lệ thích hợp, chúng ta có thể xử lý nó trong một hàm riêng biệt có tên mà chúng ta có thể chuyển vào tham số
os.remove[path, *, dir_fd = None]
77 hoặc bằng cách bắt nó trong khối try-ngoại trừos.remove[path, *, dir_fd = None]
36mã cuối cùng. Để xóa File hoặc thư mục
os.remove[path, *, dir_fd = None]
37Xóa các tệp khớp với một mẫu
Ví dụ: bạn muốn xóa tệp nếu tên chứa một chuỗi cụ thể
Mô-đun toàn cầu Python, một phần của Thư viện chuẩn Python, được dùng để tìm các tệp và thư mục có tên theo một mẫu cụ thể
os.remove[path, *, dir_fd = None]
38Phương thức
os.remove[path, *, dir_fd = None]
78 trả về danh sách các tệp hoặc thư mục khớp với mẫu được chỉ định trong đối số os.remove[path, *, dir_fd = None]
79Hàm này nhận hai đối số, cụ thể là tên đường dẫn và cờ đệ quy [ Nếu được đặt thành
os.remove[path, *, dir_fd = None]
30 thì hàm này sẽ tìm kiếm tệp theo cách đệ quy trong tất cả các thư mục con]Chúng ta có thể sử dụng các ký tự đại diện để khớp mẫu và sau đây là danh sách các ký tự đại diện được sử dụng trong khớp mẫu
- Dấu hoa thị [
31]. Khớp không hoặc nhiều ký tựos.remove[path, *, dir_fd = None]
- Dấu chấm hỏi [
32] khớp chính xác với một ký tựos.remove[path, *, dir_fd = None]
- Chúng tôi có thể chỉ định một dãy ký tự chữ và số bên trong
33os.remove[path, *, dir_fd = None]
Ví dụ. Xóa tệp có phần mở rộng cụ thể
Trong một số trường hợp nhất định, chúng tôi phải xóa tất cả các tệp có phần mở rộng cụ thể
- Sử dụng phương pháp
34 để tìm tất cả các tệp văn bản trong một thư mụcos.remove[path, *, dir_fd = None]
- Sử dụng vòng lặp for để lặp lại tất cả các tệp
- Trong mỗi lần lặp lại, hãy xóa một tệp
Hãy cho chúng tôi xem một số ví dụ để hiểu cách sử dụng điều này để xóa các tệp khớp với một mẫu cụ thể
Ví dụ
os.remove[path, *, dir_fd = None]
39Xóa tệp có tên bắt đầu bằng chuỗi cụ thể
os.remove[path, *, dir_fd = None]
0Xóa tệp có tên chứa một chữ cái cụ thể
Chúng tôi có thể cung cấp một dải ký tự làm chuỗi tìm kiếm bằng cách đặt chúng bên trong dấu ngoặc vuông [
os.remove[path, *, dir_fd = None]
33]Ví dụ sau sẽ trình bày cách xóa các tệp có tên chứa các ký tự giữa a-g
os.remove[path, *, dir_fd = None]
1Xóa các tệp khớp với một mẫu từ tất cả các thư mục con
Mặc dù hàm glob[] tìm các tệp bên trong một thư mục, nhưng có thể tìm kiếm các tệp bên trong các thư mục con bằng cách sử dụng hàm
os.remove[path, *, dir_fd = None]
36 tương tự như hàm glob[]Hàm
os.remove[path, *, dir_fd = None]
36 trả về các tùy chọn trình vòng lặp với danh sách các tệp khớp với một mẫu bên trong thư mục và thư mục con của nóChúng ta cần đặt cờ đệ quy thành True khi tìm kiếm các tệp trong thư mục con. Sau tên thư mục gốc, chúng ta cần chuyển
os.remove[path, *, dir_fd = None]
38 để tìm kiếm bên trong các thư mục conos.remove[path, *, dir_fd = None]
2đầu ra
os.remove[path, *, dir_fd = None]
3Phần kết luận
Python cung cấp một số mô-đun để xóa tệp và thư mục
Để xóa tệp. –
- Sử dụng các hàm
0 vàimport os file_path = r'E:\demos\files\sales_2.txt' if os.path.exists[file_path]: os.remove[file_path] else: print["The system cannot find the file specified"]
91 để xóa một tệpos.remove[path, *, dir_fd = None]
- Sử dụng
61 để xóa file nếu bạn dùng Python phiên bản >3. 4 và ứng dụng chạy trên các hệ điều hành khác nhauos.remove[path, *, dir_fd = None]
Để xóa Thư mục
- Sử dụng
64 hoặcos.remove[path, *, dir_fd = None]
69 để xóa một thư mục trốngos.remove[path, *, dir_fd = None]
- sử dụng
64 để xóa đệ quy một thư mục và tất cả các tệp khỏi thư mục đóos.remove[path, *, dir_fd = None]
Hãy cẩn thận trước khi xóa tệp hoặc thư mục vì tất cả các chức năng trên sẽ xóa tệp và thư mục vĩnh viễn