Việc sử dụng open trong python là gì?

Sử dụng câu lệnh with không phải để tăng hiệu suất, tôi không nghĩ rằng có bất kỳ hiệu suất tăng hoặc giảm nào liên quan đến việc sử dụng câu lệnh with, miễn là bạn thực hiện cùng một hoạt động dọn dẹp mà sử dụng câu lệnh with sẽ tự động thực hiện

Khi bạn sử dụng câu lệnh with với hàm open, bạn không cần phải đóng tệp ở cuối, vì with sẽ tự động đóng tệp cho bạn

Ngoài ra, câu lệnh ________ không chỉ để mở tệp, with còn được sử dụng kết hợp với trình quản lý ngữ cảnh. Về cơ bản, nếu bạn có một đối tượng mà bạn muốn đảm bảo rằng nó được làm sạch sau khi bạn hoàn thành nó hoặc xảy ra một số loại lỗi, bạn có thể định nghĩa nó như một trình quản lý ngữ cảnh và câu lệnh with sẽ gọi các phương thức __enter__[]with0 của nó khi nhập vào . Theo PEP 0343 -

PEP này thêm một câu lệnh mới "with" vào ngôn ngữ Python để có thể xác định các cách sử dụng tiêu chuẩn của câu lệnh thử/cuối cùng

Trong PEP này, các trình quản lý bối cảnh cung cấp các phương thức __enter__[]with0 được gọi khi vào và thoát khỏi phần thân của câu lệnh with

00. 00 Trong bài học này, tôi sẽ đề cập đến mẫu with4 của Python, còn được gọi là mẫu trình quản lý bối cảnh, mà tôi nghĩ là mẫu cơ bản quan trọng nhất để làm việc với các tệp trong Python, bởi vì đó là thứ cho phép bạn tạo và đọc từ các tệp hiện có.

00. 18 Để hiểu mẫu with4, trước tiên bạn cần hiểu hàm with6, điều này thực sự khá đơn giản

00. 26 Nó nhận một with7 và một with8 và nó sẽ mở tên tệp đã cho—từ thư mục hiện tại trừ khi được chỉ định khác—trong chế độ mà bạn chuyển vào

00. 36 Và sau khi tệp đó được mở, đó là lúc bạn có thể thực hiện các thao tác trên tệp đó, chẳng hạn như ghi vào tệp hoặc đọc từ tệp đó. Vì vậy, các chế độ tệp cơ bản—và còn nhiều chế độ khác, nhưng đây là ba chế độ mà tôi sẽ chỉ cho bạn để bắt đầu—là chế độ ghi, with9, xóa sạch nội dung tệp hiện có, tạo tệp nếu nó chưa tồn tại

00. 55 Có chế độ đọc, chế độ with0, cung cấp cho bạn quyền truy cập chỉ đọc vào nội dung của tệp và nó sẽ báo lỗi nếu tệp chưa tồn tại

01. 03 Và sau đó có chế độ nối thêm, with1, ghi vào cuối tệp, vì vậy nó không xóa nội dung tệp hiện có. Vì vậy, đó là ba chế độ tệp cơ bản mà tôi sẽ khám phá trong suốt phần còn lại của bài học này

01. 15 Trong bài học này, tôi sẽ sử dụng một thư mục mẫu cực kỳ đơn giản. Nó chỉ là một thư mục tên là with2 hoàn toàn trống rỗng, bởi vì tôi sẽ là người tạo ra tất cả các tệp này trong Python REPL

01. 27 Vì vậy, hãy chuyển sang phần Python REPL đó. Hiện tại tôi đang ở trong thiết bị đầu cuối trống rỗng, chỉ vì tôi muốn cho bạn thấy rằng, thứ nhất, tôi đang ở trong thư mục with2, như tôi đã nói là tôi sẽ ở đó, và thứ hai, điều này không có gì trong đó, bởi vì tôi

01. 46 Và bây giờ tôi đang ở trong REPL của Python, và bây giờ chúng ta có thể thay đổi đầu ra with41 đó để có một tệp văn bản thực sự trong đó. Vì vậy, nếu bạn nhớ từ slide một giây trước, điều tôi có thể làm là tôi có thể nói đại loại như _____143 làm tên tệp và sau đó tôi sẽ mở nó ở chế độ ghi để tôi có thể ghi vào đó, và thế là nó được tạo

02. 10 Và sau đó tôi cần nói with45, vì vậy, with4, sau đó tôi đặt tên cho cái này. Thông thường, tôi thấy thuận tiện khi nói điều gì đó như with47, để tôi nhớ chính xác mình đang viết thư cho cái gì, trong trường hợp này

02. 23 Sau đó tôi có thể nói điều gì đó như with48 và tôi có thể viết bất cứ văn bản nào tôi muốn viết. Vì vậy, with49 [chuỗi tham số] thuộc loại with40 [bất kỳ chuỗi nào]

02. 32 Tôi có thể nói điều gì đó như, with41 Và khi bạn thoát khỏi điều này, sẽ không rõ ràng là có điều gì đặc biệt đã xảy ra, nhưng nó đã được viết cho và bạn có thể kiểm tra điều đó bằng cách nói with42 ở chế độ đọc with43, và

03. 03 Vì vậy, như bạn có thể thấy, đây là một tệp thực sự tồn tại và nó có nội dung with41 Có một chế độ khác mà tôi đã chỉ cho bạn, vì vậy tôi sẽ chỉ cho bạn ngay bây giờ, with47 ở chế độ nối thêm with48, và sau đó tôi có thể nói with48,

03. 23 và tôi sẽ đặt một dòng mới ở đây để có một dòng mới trong tệp. Và tôi sẽ nói with60

03. 32 Và một lần nữa, tôi sẽ làm chính xác điều mà tôi đã làm ở đây. Và như bạn có thể thấy, tôi đã thêm vào nó. Nhưng nếu tôi mở lại nó ở chế độ ghi

03. 45 và sau đó viết thư cho nó

03. 48 with61

03. 54 Và bạn có thể thấy rằng trên thực tế, điều này đúng bởi vì chế độ ghi thực sự chỉ ghi lên mọi thứ đã tồn tại trong tệp, trong khi chế độ chắp thêm chỉ nối thêm vào văn bản hiện có

04. 05 Vì vậy, đó là cách bạn có thể mở, đọc và ghi vào một tệp theo một số cách khác nhau. Một điều cuối cùng mà tôi muốn trình bày trong bài học này là tại sao mẫu with4 này lại quan trọng, bởi vì bạn có thể nói with63 ở chế độ viết, và sau đó bạn có thể nói with64,

04. 33 và điều đó thực sự sẽ trả về cho bạn—hàm with48 trả về số ký tự được viết ở đó. Vì vậy, bạn có thể nói—bạn có thể làm—điều này, nhưng vấn đề là nếu bạn không nói with66, thì bạn sẽ để tài nguyên tệp này mở, mà hệ điều hành của bạn sẽ diễn giải là cần phải mở tệp đó, và

04. 59 Vì vậy, cách tốt nhất là luôn đóng tệp sau khi bạn mở nó, nhưng trình quản lý bối cảnh này with67, v.v., điều này thực sự đảm nhận tất cả những việc đó cho bạn

05. 10 Nó mở nó và sau đó nó đóng nó ở cuối khối này, vì vậy mọi thứ xảy ra trong khối được quản lý theo ngữ cảnh này sẽ tự động được bao bọc bởi with66 này

05. 20 Điều đó có vẻ không quan trọng nhưng thực sự, khi bạn đang xây dựng các ứng dụng lớn, việc quản lý tài nguyên của bạn một cách cẩn thận là vô cùng quan trọng. Cú pháp của trình quản lý bối cảnh cho phép bạn thực hiện điều đó thực sự nhanh chóng và dễ dàng và bạn không cần phải lo lắng về việc “Ồ, tôi đã đóng nó ở đây phải không?

05. 40 Vì vậy, đó là cách bạn có thể sử dụng mẫu with4 để tạo, đọc và ghi vào tệp. Trong bài học tiếp theo, tôi sẽ trình bày cách lấy danh sách thư mục. cách xem tất cả những thứ đã được tạo trong thư mục của bạn

Gopinath Y vào ngày 27 tháng 7 năm 2021

Xin chào, ngay cả khi tôi sử dụng…

with open['test.txt', 'w'] as writefile:

    writefile.write["Hello I'm a file"]

thiết bị đầu cuối của tôi trả về số ký tự… tại sao?

Liam Pulsifer Nhóm RP vào ngày 27 tháng 7 năm 2021

Xin chào @Gopinath Y. Cảm ơn đã xem khóa học. Bạn có phiền khi làm rõ những gì bạn mong đợi sẽ xảy ra ở đây không? . Thiết bị đầu cuối của bạn chỉ hiển thị cho bạn giá trị trả về của lệnh gọi phương thức. Có điều gì khác mà bạn đang hy vọng làm ở đây không?

Hàm with trong Python là gì?

Trong Python, câu lệnh with thay thế khối try-catch bằng một tốc ký ngắn gọn . Quan trọng hơn, nó đảm bảo đóng tài nguyên ngay sau khi xử lý chúng. Một ví dụ phổ biến về việc sử dụng câu lệnh with là đọc hoặc ghi vào một tệp. Một hàm hoặc lớp hỗ trợ câu lệnh with được gọi là trình quản lý ngữ cảnh.

Sự khác biệt giữa mở và mở trong Python là gì?

Trong khối mã được mở bởi “with”, tệp của chúng tôi đang mở và có thể đọc tự do . Tuy nhiên, khi Python thoát khỏi khối “with”, tệp sẽ tự động bị đóng.

Có mở Đóng tệp Python không?

Sử dụng câu lệnh with open[] sẽ tự động đóng tệp sau khi khối hoàn thành .

Chủ Đề