Làm cách nào để mở và ghi vào tệp trong python?
Xin chào. Nếu bạn muốn tìm hiểu cách làm việc với các tệp trong Python, thì bài viết này là dành cho bạn. Làm việc với các tệp là một kỹ năng quan trọng mà mọi nhà phát triển Python nên học, vì vậy hãy bắt đầu Show
Trong bài viết này, bạn sẽ học
Hãy bắt đầu nào. ✨ 🔹 Làm việc với Tệp. Cú pháp cơ bảnMột trong những hàm quan trọng nhất mà bạn sẽ cần sử dụng khi làm việc với các tệp trong Python là 9, một hàm tích hợp mở tệp và cho phép chương trình của bạn sử dụng và làm việc với tệp đó.Đây là cú pháp cơ bản 💡 Mẹo. Đây là hai đối số được sử dụng phổ biến nhất để gọi hàm này. Có sáu đối số tùy chọn bổ sung. Để tìm hiểu thêm về chúng, vui lòng đọc bài viết này trong tài liệu Tham số đầu tiên. Tập tinTham số đầu tiên của hàm 0 là 1, đường dẫn tuyệt đối hoặc tương đối tới tệp mà bạn đang cố gắng làm việc vớiChúng tôi thường sử dụng một đường dẫn tương đối, cho biết vị trí của tệp so với vị trí của tập lệnh (tệp Python) đang gọi hàm 0Ví dụ: đường dẫn trong lệnh gọi hàm này
Chỉ chứa tên của tập tin. Điều này có thể được sử dụng khi tệp mà bạn đang cố mở nằm trong cùng thư mục hoặc thư mục với tập lệnh Python, như thế này Nhưng nếu tệp nằm trong một thư mục lồng nhau, như thế này Tên. txt nằm trong thư mục "dữ liệu"Sau đó, chúng ta cần sử dụng một đường dẫn cụ thể để báo cho hàm biết rằng tệp nằm trong một thư mục khác Trong ví dụ này, đây sẽ là đường dẫn
Lưu ý rằng chúng tôi đang viết 3 trước (tên của thư mục theo sau là 4) và sau đó là 5 (tên của tệp có phần mở rộng)💡 Mẹo. Ba chữ cái 6 theo sau dấu chấm trong 5 là "phần mở rộng" của tệp hoặc loại tệp. Trong trường hợp này, 6 chỉ ra rằng đó là tệp văn bảnTham số thứ hai. Cách thứcTham số thứ hai của hàm 0 là 30, một chuỗi có một ký tự. Ký tự đơn đó về cơ bản cho Python biết bạn định làm gì với tệp trong chương trình của mìnhChế độ có sẵn là
Bạn cũng có thể chọn mở tệp trong
Để sử dụng chế độ văn bản hoặc nhị phân, bạn cần thêm các ký tự này vào chế độ chính. Ví dụ. 37 có nghĩa là viết ở chế độ nhị phân💡 Mẹo. Các chế độ mặc định là read ( 31) và text ( 35), có nghĩa là "mở để đọc văn bản" ( 30), vì vậy bạn không cần chỉ định chúng trong 0 nếu muốn sử dụng vì chúng đã được gán theo mặc định. Bạn có thể chỉ cần viết 32Tại sao Chế độ? Thật hợp lý khi Python chỉ cấp một số quyền nhất định dựa trên những gì bạn định làm với tệp, phải không? Hãy suy nghĩ về nó - cho phép một chương trình làm nhiều hơn mức cần thiết có thể gây ra vấn đề. Ví dụ: nếu bạn chỉ cần đọc nội dung của một tệp, thì việc cho phép chương trình của bạn sửa đổi tệp đó một cách bất ngờ có thể nguy hiểm, điều này có khả năng gây ra lỗi 🔸 Cách đọc tệpBây giờ bạn đã biết thêm về các đối số mà hàm 9 nhận, hãy xem cách bạn có thể mở một tệp và lưu trữ nó trong một biến để sử dụng nó trong chương trình của bạnĐây là cú pháp cơ bản Chúng tôi chỉ đơn giản là gán giá trị trả về cho một biến. Ví dụ 7Tôi biết bạn có thể hỏi. loại giá trị nào được trả về bởi 9?Vâng, một đối tượng tập tin Hãy nói một chút về họ Đối tượng tệpTheo Tài liệu Python, một đối tượng tệp là Một đối tượng hiển thị API hướng tệp (với các phương thức như read() hoặc write()) vào tài nguyên bên dưới Về cơ bản, điều này cho chúng ta biết rằng một đối tượng tệp là một đối tượng cho phép chúng ta làm việc và tương tác với các tệp hiện có trong chương trình Python của chúng ta Các đối tượng tệp có các thuộc tính, chẳng hạn như
Ví dụ
Bây giờ hãy xem cách bạn có thể truy cập nội dung của tệp thông qua đối tượng tệp Phương pháp để đọc một tập tinĐể chúng tôi có thể làm việc với các đối tượng tệp, chúng tôi cần có cách "tương tác" với chúng trong chương trình của mình và đó chính xác là những gì phương thức làm. Hãy xem một số trong số họ Đọc()Phương thức đầu tiên mà bạn cần tìm hiểu là 37, phương thức này trả về toàn bộ nội dung của tệp dưới dạng chuỗiỞ đây chúng ta có một ví dụ
đầu ra là 3Bạn có thể sử dụng hàm 38 để xác nhận rằng giá trị được trả về bởi 39 là một chuỗi 3Vâng, đó là một chuỗi Trong trường hợp này, toàn bộ tệp đã được in vì chúng tôi không chỉ định số byte tối đa, nhưng chúng tôi cũng có thể thực hiện việc này Ở đây chúng ta có một ví dụ 8Giá trị trả về được giới hạn ở số byte này 9❗️Quan trọng. Bạn cần đóng tệp sau khi hoàn thành tác vụ để giải phóng các tài nguyên liên quan đến tệp. Để làm điều này, bạn cần gọi phương thức 80, như thế nàyReadline() so với. Dòng đọc ()Bạn có thể đọc từng dòng tệp bằng hai phương pháp này. Chúng hơi khác nhau, vì vậy hãy xem chi tiết 81 đọc một dòng của tệp cho đến khi đọc đến cuối dòng đó. Một ký tự dòng mới ở cuối ( 82) được giữ trong chuỗi💡 Mẹo. Theo tùy chọn, bạn có thể chuyển kích thước, số lượng ký tự tối đa mà bạn muốn đưa vào chuỗi kết quả Ví dụ 3đầu ra là 0Đây là dòng đầu tiên của tập tin Ngược lại, 83 trả về một danh sách với tất cả các dòng của tệp dưới dạng các phần tử riêng lẻ (chuỗi). Đây là cú phápVí dụ 1đầu ra là 2Lưu ý rằng có một 82 (ký tự dòng mới) ở cuối mỗi chuỗi, ngoại trừ chuỗi cuối cùng💡 Mẹo. Bạn có thể nhận được danh sách tương tự với 85Bạn có thể làm việc với danh sách này trong chương trình của mình bằng cách gán nó cho một biến hoặc sử dụng nó trong một vòng lặp 3Chúng tôi cũng có thể lặp lại trực tiếp trên 86 (đối tượng tệp) trong một vòng lặp 4Đó là những phương pháp chính được sử dụng để đọc các đối tượng tệp. Bây giờ hãy xem cách bạn có thể tạo tệp 🔹 Cách tạo tệpNếu bạn cần tạo một tệp "động" bằng Python, bạn có thể thực hiện với chế độ 34Hãy xem làm thế nào. Đây là cú pháp cơ bản Đây là một ví dụ. Đây là thư mục làm việc hiện tại của tôi Nếu tôi chạy dòng mã này 5Một tệp mới có tên đó được tạo Với chế độ này, bạn có thể tạo một tệp và sau đó ghi động vào tệp đó bằng cách sử dụng các phương thức mà bạn sẽ học chỉ trong giây lát 💡 Mẹo. Tệp ban đầu sẽ trống cho đến khi bạn sửa đổi nó Một điều kỳ lạ là nếu bạn cố chạy lại dòng này và một tệp có tên đó đã tồn tại, bạn sẽ thấy lỗi này 6Theo Tài liệu Python, ngoại lệ này (lỗi thời gian chạy) là Xảy ra khi cố gắng tạo một tệp hoặc thư mục đã tồn tại Bây giờ bạn đã biết cách tạo một tệp, hãy xem cách bạn có thể sửa đổi nó 🔸 Cách Sửa đổi TệpĐể sửa đổi (ghi vào) một tệp, bạn cần sử dụng phương pháp 88. Bạn có hai cách để làm điều đó (nối thêm hoặc viết) dựa trên chế độ mà bạn chọn để mở nó. Hãy xem chúng một cách chi tiếtnối thêm"Nối thêm" có nghĩa là thêm một thứ gì đó vào cuối một thứ khác. Chế độ 32 cho phép bạn mở một tệp để thêm một số nội dung vào đóVí dụ: nếu chúng ta có tệp này Và chúng tôi muốn thêm một dòng mới vào nó, chúng tôi có thể mở nó bằng cách sử dụng chế độ 90 (nối thêm) và sau đó, gọi phương thức 88, chuyển nội dung mà chúng tôi muốn nối thêm làm đối sốĐây là cú pháp cơ bản để gọi phương thức 88Đây là một ví dụ 7💡 Mẹo. Lưu ý rằng tôi đang thêm 82 trước dòng để cho biết rằng tôi muốn dòng mới xuất hiện dưới dạng một dòng riêng biệt, không phải là phần tiếp theo của dòng hiện cóĐây là tệp bây giờ, sau khi chạy tập lệnh 💡 Mẹo. Dòng mới có thể không được hiển thị trong tệp cho đến khi 94 chạyViếtĐôi khi, bạn có thể muốn xóa nội dung của tệp và thay thế hoàn toàn bằng nội dung mới. Bạn có thể thực hiện việc này bằng phương pháp 88 nếu bạn mở tệp bằng chế độ 96Ở đây chúng tôi có tập tin văn bản này Nếu tôi chạy kịch bản này 8Đây là kết quả Như bạn có thể thấy, mở một tệp bằng chế độ 96 và sau đó ghi vào tệp đó sẽ thay thế nội dung hiện có💡 Mẹo. Phương thức 98 trả về số ký tự được viếtNếu bạn muốn viết nhiều dòng cùng một lúc, bạn có thể sử dụng phương thức 99, phương thức này nhận danh sách các chuỗi. Mỗi chuỗi đại diện cho một dòng sẽ được thêm vào tệpĐây là một ví dụ. Đây là tập tin ban đầu Nếu chúng ta chạy kịch bản này 9Các dòng được thêm vào cuối tập tin Mở tệp cho nhiều thao tácBây giờ bạn đã biết cách tạo, đọc và ghi vào một tệp, nhưng nếu bạn muốn làm nhiều việc trong cùng một chương trình thì sao? Nếu bạn mở một tệp ở chế độ 31 (đọc), rồi thử ghi vào tệp đó 70Bạn sẽ nhận được lỗi này 71Tương tự, nếu bạn mở một tệp ở chế độ 33 (ghi), rồi cố đọc nó 72Bạn sẽ thấy lỗi này 73Điều tương tự cũng xảy ra với chế độ 32 (chắp thêm)Làm thế nào chúng ta có thể giải quyết điều này? 74 75____276Rất hữu ích đúng không? Đôi khi các tập tin không còn cần thiết. Hãy xem cách bạn có thể xóa tệp bằng Python 🔹 Cách xóa tệpĐể xóa tệp bằng Python, bạn cần nhập một mô-đun có tên là 34 chứa các chức năng tương tác với hệ điều hành của bạn💡 Mẹo. Một mô-đun là một tệp Python có các biến, hàm và lớp liên quan Đặc biệt, bạn cần hàm 35. Hàm này lấy đường dẫn đến tệp làm đối số và tự động xóa tệpHãy xem một ví dụ. Chúng tôi muốn xóa tệp có tên 36Để làm điều đó, chúng tôi viết mã này 77
💡 Mẹo. bạn có thể sử dụng một đường dẫn tuyệt đối hoặc tương đối Bây giờ bạn đã biết cách xóa tệp, hãy xem một công cụ thú vị. Trình quản lý bối cảnh 🔸 Gặp gỡ các nhà quản lý ngữ cảnhTrình quản lý bối cảnh là các cấu trúc Python sẽ giúp cuộc sống của bạn dễ dàng hơn nhiều. Bằng cách sử dụng chúng, bạn không cần phải nhớ đóng tệp ở cuối chương trình và bạn có quyền truy cập vào tệp trong phần cụ thể của chương trình mà bạn chọn cú phápĐây là một ví dụ về trình quản lý bối cảnh được sử dụng để làm việc với các tệp 💡 Mẹo. Phần thân của trình quản lý ngữ cảnh phải được thụt lề, giống như chúng ta thụt lề các vòng lặp, hàm và lớp. Nếu mã không được thụt vào, nó sẽ không được coi là một phần của trình quản lý bối cảnh Khi phần nội dung của trình quản lý ngữ cảnh được hoàn thành, tệp sẽ tự động đóng lại 78Thí dụĐây là một ví dụ 79Trình quản lý bối cảnh này mở tệp 5 cho các hoạt động đọc/ghi và gán đối tượng tệp đó cho biến 86. Biến này được sử dụng trong phần thân của trình quản lý ngữ cảnh để chỉ đối tượng tệpĐang cố đọc lạiSau khi hoàn thành phần thân, tệp sẽ tự động đóng lại, vì vậy không thể đọc được nếu không mở lại. Nhưng đợi đã. Chúng tôi có một dòng cố gắng đọc lại nó, ngay dưới đây 0Hãy xem điều gì sẽ xảy ra 1Lỗi này xảy ra vì chúng tôi đang cố đọc một tệp đã đóng. Tuyệt vời, phải không? 🔹 Cách xử lý ngoại lệ khi làm việc với tệpKhi bạn đang làm việc với các tệp, lỗi có thể xảy ra. Đôi khi, bạn có thể không có các quyền cần thiết để sửa đổi hoặc truy cập tệp hoặc tệp thậm chí có thể không tồn tại Là một lập trình viên, bạn cần lường trước những trường hợp này và xử lý chúng trong chương trình của mình để tránh những sự cố đột ngột có thể ảnh hưởng nghiêm trọng đến trải nghiệm người dùng Hãy xem một số ngoại lệ phổ biến nhất (lỗi thời gian chạy) mà bạn có thể tìm thấy khi làm việc với tệp FileNotFoundErrorTheo Tài liệu Python, ngoại lệ này là Xảy ra khi một tệp hoặc thư mục được yêu cầu nhưng không tồn tại Ví dụ: nếu tệp bạn đang cố mở không tồn tại trong thư mục làm việc hiện tại của bạn 2Bạn sẽ thấy lỗi này 3Hãy sửa lỗi này theo từng dòng
💡 Mẹo. Python rất mô tả với các thông báo lỗi, phải không? QuyềnLỗiĐây là một ngoại lệ phổ biến khác khi làm việc với tệp. Theo Tài liệu Python, ngoại lệ này là Xảy ra khi cố chạy một thao tác mà không có quyền truy cập đầy đủ - ví dụ: quyền hệ thống tệp Ngoại lệ này được đưa ra khi bạn đang cố đọc hoặc sửa đổi tệp không có quyền truy cập. Nếu bạn cố gắng làm như vậy, bạn sẽ thấy lỗi này 4IsADirectoryErrorTheo Tài liệu Python, ngoại lệ này là Xảy ra khi một thao tác tệp được yêu cầu trên một thư mục Ngoại lệ cụ thể này được đưa ra khi bạn cố gắng mở hoặc làm việc trên một thư mục thay vì một tệp, vì vậy hãy thực sự cẩn thận với đường dẫn mà bạn chuyển làm đối số Cách xử lý ngoại lệĐể xử lý những ngoại lệ này, bạn có thể sử dụng câu lệnh try/except. Với câu lệnh này, bạn có thể "ra lệnh" cho chương trình của mình phải làm gì trong trường hợp có điều gì đó không mong muốn xảy ra Đây là cú pháp cơ bản 5Ở đây bạn có thể xem một ví dụ với 08 6Điều này về cơ bản nói
💡 Mẹo. Bạn có thể chọn cách xử lý tình huống bằng cách viết mã thích hợp vào khối 13. Có lẽ bạn có thể tạo một tệp mới nếu nó chưa tồn tạiĐể tự động đóng tệp sau tác vụ (bất kể có ngoại lệ nào được đưa ra trong khối 14 hay không), bạn có thể thêm khối 15 7Đây là một ví dụ 8Có nhiều cách để tùy chỉnh câu lệnh thử/ngoại trừ/cuối cùng và thậm chí bạn có thể thêm một khối 16 để chỉ chạy một khối mã nếu không có ngoại lệ nào được đưa ra trong khối 14💡 Mẹo. Để tìm hiểu thêm về xử lý ngoại lệ trong Python, bạn có thể đọc bài viết của tôi. "Cách xử lý ngoại lệ trong Python. Giới thiệu trực quan chi tiết" 🔸 Tóm lại
Tôi thực sự hy vọng bạn thích bài viết của tôi và thấy nó hữu ích. Bây giờ bạn có thể làm việc với các tệp trong dự án Python của mình. Kiểm tra các khóa học trực tuyến của tôi. Theo dõi tôi trên Twitter. ⭐️ 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 QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO QUẢNG CÁO Nhà phát triển, nhà văn kỹ thuật và người tạo nội dung @freeCodeCamp. Tôi chạy freeCodeCamp. org Kênh YouTube Español 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 Python có thể mở tệp và ghi vào chúng không?Python cung cấp các chức năng sẵn có để tạo, ghi và đọc tệp . Có hai loại tệp có thể được xử lý trong python, tệp văn bản bình thường và tệp nhị phân (được viết bằng ngôn ngữ nhị phân, 0 và 1).
Khi bạn mở một tệp để viết bằng Python?'r'. Chế độ này cho biết tệp sẽ chỉ được mở để đọc 'w'. Chế độ này chỉ ra rằng tệp sẽ chỉ được mở để ghi. . 'một'. Chế độ này chỉ ra rằng đầu ra của chương trình đó sẽ được thêm vào đầu ra trước đó của tệp đó |