Đọc và ghi tệp là thao tác phổ biến khi làm việc với bất kỳ ngôn ngữ lập trình nào. Bạn có thể lập trình mã của mình để đọc dữ liệu hoặc hướng dẫn từ một tệp và sau đó cũng ghi dữ liệu. Điều này làm tăng hiệu quả và giảm nỗ lực thủ công
Python có một phương pháp được xác định rõ để mở, đọc và ghi tệp. Một số ứng dụng để thao tác tệp trong Python bao gồm. đọc dữ liệu để đào tạo và kiểm tra thuật toán, đọc tệp để tạo nghệ thuật tổng quát, báo cáo và đọc tệp cấu hình.
Trong hướng dẫn này, bạn sẽ học
- Cách tải tệp vào bộ nhớ chính và tạo bộ xử lý tệp
- Cách sử dụng bộ xử lý tệp để mở tệp để đọc và ghi
- Xử lý ngoại lệ khi làm việc với tệp
điều kiện tiên quyết
- Đảm bảo bạn đã cài đặt phiên bản Python mới nhất
- Quen thuộc với bất kỳ trình soạn thảo văn bản nào được Python hỗ trợ mà bạn chọn
- Một số quen thuộc với cú pháp Python cơ bản
Để có quyền truy cập nhanh vào Python IDE, hãy xem Replit. Bạn cũng có thể sao chép repo này và chạy nó trên Replit
Độ bền và cách tải tệp vào bộ nhớ chính
Tệp nằm trong bộ nhớ phụ của máy tính. Bộ nhớ thứ cấp liên tục, có nghĩa là dữ liệu không bị xóa khi tắt máy tính. Sau khi bạn thực hiện các thay đổi đối với một tệp và lưu tệp đó, các thay đổi đó sẽ được ghi và lưu vĩnh viễn trong bộ nhớ phụ
Để làm việc với các tệp, trước tiên chúng ta cần tải chúng vào bộ nhớ chính. Bộ nhớ chính là bộ nhớ cache tạm thời chứa dữ liệu được yêu cầu trong một khoảng thời gian ngắn. Dữ liệu bị mất khi tắt nguồn máy tính
Python tương tác với các tệp được tải trong bộ nhớ chính thông qua "trình xử lý tệp". Hãy xem chi tiết các trình xử lý tệp
Trình xử lý tệp hoạt động như thế nào
Khi chúng ta muốn đọc hoặc ghi một tệp, trước tiên chúng ta phải mở tệp đó. Việc mở một tệp báo hiệu cho hệ điều hành tìm kiếm tệp theo tên của nó và đảm bảo rằng nó tồn tại
Hệ điều hành trả về một trình xử lý tệp nếu mở thành công. Sau đó, chúng tôi có thể tương tác với tệp của mình thông qua trình xử lý tệp
Trình xử lý tệp không chứa dữ liệu, nó chỉ cung cấp giao diện để xử lý các hoạt động của tệp
Cách mở tệp
Trong ví dụ này, chúng tôi sẽ mở tệp
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
2. Lưu ý rằng tệp này phải được lưu trữ trong cùng thư mục với chương trình Python của bạn. Bạn có thể tải xuống tệp # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
2 từ liên kết GitHub nàyHãy xem qua tệp vì chúng tôi sẽ làm việc với nội dung của nó trong các ví dụ sắp tới của chúng tôi
Ví dụ
fhand = open['daffodils.txt']
print[fhand]
Trong ví dụ trên, HĐH sẽ trả về xử lý tệp trong biến
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
4 nếu mở thành công. Theo mặc định, bạn chỉ có thể đọc tệpđầu ra
Ở đầu ra, chúng tôi đã nhận được một xử lý tệp trong đó
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
5 là tên tệp và # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
6 là quyền mà trong trường hợp của chúng tôi là # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
7 [viết tắt của # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
8]. # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
9 là cơ chế mã hóa cho bộ ký tự Unicode. Bạn có thể tìm hiểu thêm thông tin chi tiết về UTF-8 tại đâyNgoại lệ
Trong trường hợp tệp không tồn tại, chúng tôi có một ngoại lệ như thế này
Cách in tệp
Bây giờ chúng tôi có phần xử lý tệp có nghĩa là chúng tôi có thể truy cập tệp. Hãy in tập tin và xem nội dung của nó
Ví dụ
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
đầu ra
Chúng tôi có thể truy cập và in tệp thành công. Tuy nhiên, bạn có nhận thấy rằng chúng ta đang có thêm các dòng trống giữa mỗi dòng không? . Hãy xem trong phần tiếp theo
Cách xử lý khoảng cách dòng thừa
Ký tự dòng mới được biểu thị bằng Python bằng
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
00. Ký tự này thêm một dòng mới khi được đặt ở bất kỳ đâu trong chuỗiCó một ký tự dòng mới ở cuối mỗi dòng in ra dòng tiếp theo. Chúng ta có thể hình dung nó bằng phương pháp
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
01Theo Python, phương thức
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
02 trả về một chuỗi chứa biểu diễn có thể in được của một đối tượng. Điều này có nghĩa là chúng ta có thể thấy bất kỳ ký tự đặc biệt nào như # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
03 xuất hiện trong một chuỗi. Hãy chạy một ví dụ bên dưới và xem đầu ra
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
02Ví dụ
Quay lại tệp của chúng tôi, chúng tôi có thể sử dụng
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
02 để kiểm tra các ký tự đặc biệt# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
0đầu ra
Hơn nữa, phương thức in thêm một dòng mới theo mặc định. Điều này có nghĩa là bằng cách sử dụng bản in, chúng tôi sẽ nhận được một dòng mới khác trong đầu ra. Chúng tôi có thể xử lý dòng bổ sung này bằng hai cách tiếp cận
Cách tiếp cận số 1. Thay đổi giá trị cuối mặc định của bản in
Đoạn mã dưới đây hiển thị các đối số cho hàm
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
06. Chúng ta có thể thấy rằng theo mặc định, giá trị của # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
07 là # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
00. Điều này có nghĩa là mọi câu lệnh in sẽ kết thúc bằng # Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
00Chúng tôi có thể thay đổi giá trị mặc định
fhand = open['daffodils.txt']
print[fhand]
10 thành khoảng trống để chúng tôi không nhận được một dòng mới ở cuối mỗi dòng. Cùng xem ví dụ bên dưới để hiểu rõ hơnfhand = open['daffodils.txt']
print[fhand]
1đầu ra
fhand = open['daffodils.txt']
print[fhand]
11. Quay lại tệp chính của chúng tôi, hãy sửa đổi mã một chút để có được đầu ra mà không cần thêm dòng trống
fhand = open['daffodils.txt']
print[fhand]
4đầu ra
Và ở đây chúng tôi có đầu ra mong muốn của chúng tôi
fhand = open['daffodils.txt']
print[fhand]
11Cách tiếp cận #2. Sử dụng phương thức rstrip[]
Chúng ta có thể xóa một số ký tự xung quanh một chuỗi bằng phương thức
fhand = open['daffodils.txt']
print[fhand]
13Đến bây giờ chúng ta biết rằng theo mặc định, mỗi dòng trong một tệp có ____214 ở cuối. Vì chúng tôi chỉ quan tâm đến ký tự bên phải, chúng tôi sẽ sử dụng
fhand = open['daffodils.txt']
print[fhand]
15 viết tắt của dải bên phải. Chúng ta sẽ thảo luận về một ví dụ về fhand = open['daffodils.txt']
print[fhand]
15 tiếp theoBạn có thể tìm hiểu thêm về phương pháp
fhand = open['daffodils.txt']
print[fhand]
13 trong bài đăng trên blog này# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
1đầu ra
Cách để người dùng chọn tệp
Thay vì mã hóa cứng tên tệp, chúng tôi có thể làm cho mã động bằng cách cho phép người dùng chọn tệp
Hãy yêu cầu người dùng nhập tên tệp. Sau đó, chúng tôi sẽ tính toán số lượng dòng trong tệp
Ví dụ
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
3Yêu cầu người dùng nhập tên tệpđầu ra
Cách viết một tệp bằng Python
Theo mặc định, trình xử lý tệp sẽ mở tệp ở chế độ đọc. Chúng tôi có thể ghi vào một tệp nếu chúng tôi mở tệp bằng bất kỳ chế độ nào sau đây
19- [Write] ghi vào tệp hiện có nhưng xóa nội dung hiện cófhand = open['daffodils.txt'] print[fhand]
40- [Append] thêm vào một tệp hiện cófhand = open['daffodils.txt'] print[fhand]
41 - [Tạo] tạo tệp và trả về lỗi nếu tệp tồn tạifhand = open['daffodils.txt'] print[fhand]
Làm thế nào để ghi vào một tập tin
Lưu ý rằng, nếu chúng tôi cố gắng mở một tệp đã tồn tại với cờ
fhand = open['daffodils.txt']
print[fhand]
19, nội dung sẽ bị ghi đè# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
8Cách thêm vào một tệp
Cờ
fhand = open['daffodils.txt']
print[fhand]
40 gắn vào nội dung hiện có và giữ nguyên nội dung hiện có# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
0Làm thế nào để tạo một tập tin và ghi vào nó
Chế độ
fhand = open['daffodils.txt']
print[fhand]
41 tạo một tệp và thêm nội dung vào đó# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
2Nếu tệp tồn tại, chúng tôi sẽ nhận được một ngoại lệ như thế này
# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
0Xử lý ngoại lệ
Có thể tệp chúng tôi yêu cầu không tồn tại. Điều này làm nổ tung chương trình do ngoại lệ
Để làm cho chương trình thân thiện hơn với người dùng, chúng tôi có thể xử lý ngoại lệ này trong khối
fhand = open['daffodils.txt']
print[fhand]
45Phần rủi ro của chương trình dự kiến sẽ nổ tung được viết trong một khối
fhand = open['daffodils.txt']
print[fhand]
46. Trong trường hợp mã thực thi mà không có ngoại lệ, khối fhand = open['daffodils.txt']
print[fhand]
47 sẽ bị bỏ qua và chương trình tiếp tục chạy. Trong trường hợp tìm thấy ngoại lệ, khối fhand = open['daffodils.txt']
print[fhand]
47 sẽ chạy và đóng chương trình một cách duyên dáng bằng lệnh fhand = open['daffodils.txt']
print[fhand]
49# Get the file handler
fhand = open['daffodils.txt']
# Loop through each line via file handler
for line in fhand:
print[line]
1đầu ra
kết thúc
Biết cách làm việc với tệp là một khái niệm thiết yếu trong lập trình. Trong hướng dẫn này, bạn đã học cách mở tệp để đọc và ghi bằng Python bằng trình xử lý tệp
Để tham khảo, tôi đã bao gồm tất cả các đoạn mã và tệp mẫu trong repo GitHub này
Tôi hy vọng bạn thấy hướng dẫn này hữu ích
Điều yêu thích của bạn mà bạn đã học được từ hướng dẫn này là gì?
Bạn cũng có thể đọc các bài viết khác của tôi ở đây
tín dụng biểu ngữ
- Php vector tạo bởi svstudioart - www. freepik. com
- Vector chủ đề trang web được tạo bởi freepik - www. freepik. com
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
QUẢNG CÁO
Tôi là Nhà tư vấn và nhà văn DevOps tại FreeCodeCamp. Tôi mong muốn cung cấp nội dung dễ dàng và chính xác cho Techies
Nếu bạn đọc đến đây, hãy tweet cho tác giả để cho họ thấy bạn quan tâm. Tweet một lời cảm ơn
Học cách viết mã miễn phí. Chương trình giảng dạy mã nguồn mở của freeCodeCamp đã giúp hơn 40.000 người có được việc làm với tư cách là nhà phát triển. Bắt đầu