Xử lý tệp là một phần không thể thiếu trong hầu hết các ngôn ngữ lập trình. Python cung cấp các phương thức xử lý tệp tích hợp để mở, đóng, đọc và ghi tệp để đọc và lưu trữ dữ liệu. Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách mở tệp để đọc và ghi trong python Show
Trước tiên chúng ta phải mở một tệp trước khi có thể đọc hoặc ghi vào tệp đó. Sau đó, đóng tệp sau khi chúng tôi hoàn tất để các tài nguyên được liên kết với tệp có thể được giải phóng. Do đó, có ba bước trong bất kỳ thao tác xử lý tệp nào bao gồm
Các chế độ truy cập tệp xác định cách tệp được sử dụng sau khi tệp được mở. Có sáu chế độ truy cập khác nhau được sử dụng để đọc hoặc ghi hoặc thực hiện các thao tác đọc và ghi đồng thời Trước khi chuyển sang các ví dụ mã hóa thực tế, hãy nhớ rằng nếu bạn đang làm việc trên tệp văn bản, python sẽ lấy EOL (cuối dòng) hoặc trong ngôn ngữ lập trình “\n” làm điểm kết thúc cho dòng trong tệp văn bản và Trong hướng dẫn này, chúng ta sẽ thảo luận về đọc và ghi tệp. Cú pháp để mở một tập tin là
Lưu ý rằng tệp được đọc hoặc ghi phải nằm trong cùng thư mục chứa tệp python của bạn. Nếu không, hãy cung cấp đường dẫn đầy đủ của tệp đó. Nếu không, mã sẽ cung cấp cho bạn lỗi tệp Nếu bạn muốn tìm hiểu thêm về Lập trình Python, hãy truy cập Hướng dẫn về Python Chúng tôi sẽ sử dụng hai phương pháp khác nhau để đọc và ghi trong một tệp
cả Đọc và ghi tệp bằng cách sử dụng chế độ Truy cập “r+”Python cung cấp các chế độ truy cập cho phép chúng ta xử lý và quyết định nên làm gì với các tệp sau khi chúng được mở. Chế độ truy cập đọc và ghi ('r+') được sử dụng cho cả việc đọc và ghi vào tệp. Đoạn mã dưới đây mở tập tin “myfile. txt” ở chế độ đọc và ghi và đọc tất cả các dòng trong tệp văn bản file = open("myfile.txt", "r+") file.readline() Trong đoạn mã trên, chúng tôi đã sử dụng một tệp lệnh. readline() để đọc dòng cụ thể của tệp. Chúng tôi cũng có thể chỉ định số lượng dòng bằng cách chuyển đối số 'n' bên trong tệp. lệnh readline(n) file = open("myfile.txt", "r+") file.read() Ở đây, read() được sử dụng để lấy các byte cụ thể ở dạng chuỗi của tệp đã cho. chúng ta cũng có thể viết nó là read(n) Để ghi vào file ta có thể sử dụng lệnh write() như hình bên dưới. Văn bản được viết được cung cấp dưới dạng đối số bên trong lệnh write() file.write("any data") Chúng ta cũng có thể sử dụng hàm writelines() để ghi tất cả dữ liệu một lần myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline) Cả Đọc và ghi tệp bằng cách sử dụng chế độ Truy cập “w+”Một chế độ truy cập khác được sử dụng cho cả đọc và viết là chế độ 'w+'. Nó gần giống với chế độ truy cập 'r+' file = open("myfile.txt", "w+") Trong đoạn mã trên, w+ là để đọc và viết. Nếu tệp tồn tại thì dữ liệu được lưu trữ trước đó sẽ bị ghi đè và dữ liệu trước đó sẽ bị xóa. Đây là điểm khác biệt duy nhất giữa chế độ 'r+' và 'w+'. Sau khi tệp được mở bằng chế độ ‘w+’, bạn có thể sử dụng phương thức read, readlines, write() và writelines() để đọc và ghi dữ liệu Để mở tệp ở chế độ đọc/ghi, hãy chỉ định 'w+' làm chế độ. Ví dụ, f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close() Mã trên mở my_file. txt ở chế độ ghi, lưu trữ nội dung tệp trong biến file_content và viết lại tệp để chứa "Xin chào thế giới". Bạn cũng có thể sử dụng chế độ r+ vì chế độ này không cắt bớt tệp. Cập nhật ngày 01-Oct-2019 11. 39. 18 Một trong những tác vụ phổ biến nhất mà bạn có thể thực hiện với Python là đọc và ghi tệp. Cho dù đó là ghi vào tệp văn bản đơn giản, đọc nhật ký máy chủ phức tạp hay thậm chí phân tích dữ liệu byte thô, tất cả các tình huống này đều yêu cầu đọc hoặc ghi tệp Trong hướng dẫn này, bạn sẽ học
Hướng dẫn này chủ yếu dành cho Pythonistas mới bắt đầu đến trung cấp, nhưng có một số mẹo ở đây mà các lập trình viên cao cấp hơn cũng có thể đánh giá cao Tiền thưởng miễn phí. Nhấp vào đây để nhận Bảng cheat Python miễn phí của chúng tôi, trang này cho bạn biết kiến thức cơ bản về Python 3, như làm việc với các kiểu dữ liệu, từ điển, danh sách và hàm Python Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Đọc và ghi tệp bằng Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian Lấy bài kiểm tra " Tập tin là gì?Trước khi chúng ta có thể tìm hiểu cách làm việc với các tệp trong Python, điều quan trọng là phải hiểu chính xác tệp là gì và cách các hệ điều hành hiện đại xử lý một số khía cạnh của chúng Về cốt lõi, một tệp là một tập hợp các byte liền kề được sử dụng để lưu trữ dữ liệu. Dữ liệu này được sắp xếp theo một định dạng cụ thể và có thể là bất kỳ thứ gì đơn giản như tệp văn bản hoặc phức tạp như chương trình thực thi. Cuối cùng, các tệp byte này sau đó được dịch thành mã nhị phân 5 và 6 để máy tính xử lý dễ dàng hơnCác tệp trên hầu hết các hệ thống tệp hiện đại bao gồm ba phần chính
Dữ liệu này thể hiện điều gì tùy thuộc vào đặc tả định dạng được sử dụng, thường được biểu thị bằng phần mở rộng. Ví dụ: một tệp có phần mở rộng là 7 rất có thể phù hợp với đặc tả Định dạng trao đổi đồ họa. Có hàng trăm, nếu không muốn nói là hàng nghìn phần mở rộng tệp ngoài kia. Đối với hướng dẫn này, bạn sẽ chỉ xử lý các phần mở rộng tệp 8 hoặc 9Loại bỏ các quảng cáoĐường dẫn tệpKhi bạn truy cập một tệp trên hệ điều hành, cần có đường dẫn tệp. Đường dẫn tệp là một chuỗi đại diện cho vị trí của tệp. Nó được chia thành ba phần chính
Đây là một ví dụ nhanh. Giả sử bạn có một tệp nằm trong cấu trúc tệp như thế này file = open("myfile.txt", "r+") file.readline()5 Giả sử bạn muốn truy cập tệp file = open("myfile.txt", "r+") file.readline()23 và vị trí hiện tại của bạn nằm trong cùng thư mục với file = open("myfile.txt", "r+") file.readline()24. Để truy cập tệp, bạn cần đi qua thư mục file = open("myfile.txt", "r+") file.readline()24 rồi đến thư mục file = open("myfile.txt", "r+") file.readline()26, cuối cùng đến tệp file = open("myfile.txt", "r+") file.readline()23. Đường dẫn thư mục là file = open("myfile.txt", "r+") file.readline()28. Tên tệp là file = open("myfile.txt", "r+") file.readline()29. Phần mở rộng tệp là 7. Vì vậy, đường dẫn đầy đủ là file = open("myfile.txt", "r+") file.read()41 Bây giờ, giả sử rằng vị trí hiện tại của bạn hoặc thư mục làm việc hiện tại (cwd) nằm trong thư mục file = open("myfile.txt", "r+") file.readline()26 của cấu trúc thư mục ví dụ của chúng tôi. Thay vì tham chiếu đến file = open("myfile.txt", "r+") file.readline()23 bằng đường dẫn đầy đủ của file = open("myfile.txt", "r+") file.read()41, tệp có thể được tham chiếu đơn giản bằng tên tệp và phần mở rộng file = open("myfile.txt", "r+") file.readline()23 file = open("myfile.txt", "r+") file.read()9 Nhưng còn file = open("myfile.txt", "r+") file.read()46 thì sao? . Điều này có nghĩa là file = open("myfile.txt", "r+") file.read()48 sẽ tham chiếu tệp file = open("myfile.txt", "r+") file.read()46 từ thư mục của file = open("myfile.txt", "r+") file.readline()26 file.write("any data")5 Dấu chấm đôi ( file = open("myfile.txt", "r+") file.read()47) có thể được nối với nhau để duyệt qua nhiều thư mục phía trên thư mục hiện tại. Ví dụ: để truy cập file.write("any data")72 từ thư mục file = open("myfile.txt", "r+") file.readline()26, bạn sẽ sử dụng file.write("any data")74 kết thúc dòngMột vấn đề thường gặp khi làm việc với dữ liệu tệp là biểu diễn của một dòng mới hoặc kết thúc dòng. Kết thúc dòng có nguồn gốc từ thời Mã Morse, khi một dấu hiệu cụ thể được sử dụng để thông báo kết thúc truyền hoặc kết thúc dòng Sau đó, điều này đã được cả Tổ chức Tiêu chuẩn hóa Quốc tế (ISO) và Hiệp hội Tiêu chuẩn Hoa Kỳ (ASA) chuẩn hóa cho máy in từ xa. Tiêu chuẩn ASA quy định rằng các kết thúc dòng phải sử dụng chuỗi các ký tự Trả về vận chuyển ( file.write("any data")75 hoặc file.write("any data")76) và Nguồn cấp dữ liệu ( file.write("any data")77 hoặc file.write("any data")78) ( file.write("any data")79 hoặc myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)50). Tuy nhiên, tiêu chuẩn ISO cho phép cả ký tự file.write("any data")79 hoặc chỉ ký tự file.write("any data")77 Windows sử dụng các ký tự file.write("any data")79 để biểu thị một dòng mới, trong khi Unix và các phiên bản Mac mới hơn chỉ sử dụng ký tự file.write("any data")77. Điều này có thể gây ra một số rắc rối khi bạn đang xử lý tệp trên một hệ điều hành khác với nguồn của tệp. Đây là một ví dụ nhanh. Giả sử chúng ta kiểm tra tệp file = open("myfile.txt", "r+") file.read()46 được tạo trên hệ thống Windows
Đầu ra tương tự này sẽ được diễn giải khác nhau trên thiết bị Unix file = open("myfile.txt", "r+") file.readline()2 Điều này có thể làm cho việc lặp lại trên mỗi dòng trở nên khó khăn và bạn có thể cần tính đến các tình huống như thế này Mã hóa ký tựMột vấn đề phổ biến khác mà bạn có thể gặp phải là mã hóa dữ liệu byte. Mã hóa là bản dịch từ dữ liệu byte sang ký tự có thể đọc được của con người. Điều này thường được thực hiện bằng cách gán một giá trị số để đại diện cho một ký tự. Hai mã hóa phổ biến nhất là Định dạng ASCII và UNICODE. ASCII chỉ có thể lưu trữ 128 ký tự, trong khi Unicode có thể chứa tới 1.114.112 ký tự ASCII thực sự là một tập hợp con của Unicode (UTF-8), có nghĩa là ASCII và Unicode chia sẻ cùng giá trị số thành ký tự. Điều quan trọng cần lưu ý là việc phân tích tệp có mã hóa ký tự không chính xác có thể dẫn đến lỗi hoặc trình bày sai ký tự. Ví dụ: nếu một tệp được tạo bằng mã hóa UTF-8 và bạn cố phân tích cú pháp tệp đó bằng mã hóa ASCII, nếu có một ký tự nằm ngoài 128 giá trị đó thì sẽ xảy ra lỗi Loại bỏ các quảng cáoMở và đóng tệp bằng PythonKhi muốn làm việc với một tệp, việc đầu tiên cần làm là mở tệp đó. Điều này được thực hiện bằng cách gọi hàm tích hợp sẵn myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)56. myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)56 có một đối số bắt buộc duy nhất là đường dẫn đến tệp. myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)56 có một lần trả về, đối tượng tệp file = open("myfile.txt", "r+") file.read()4 Sau khi bạn mở một tệp, điều tiếp theo cần tìm hiểu là cách đóng tệp đó Cảnh báo. Bạn phải luôn đảm bảo rằng tệp đang mở được đóng đúng cách. Để tìm hiểu lý do tại sao, hãy xem Tại sao việc đóng tệp trong Python lại quan trọng? Điều quan trọng cần nhớ là bạn có trách nhiệm đóng tệp. Trong hầu hết các trường hợp, khi chấm dứt ứng dụng hoặc tập lệnh, tệp sẽ bị đóng cuối cùng. Tuy nhiên, không có gì đảm bảo chính xác khi nào điều đó sẽ xảy ra. Điều này có thể dẫn đến hành vi không mong muốn bao gồm rò rỉ tài nguyên. Đây cũng là một cách thực hành tốt nhất trong Python (Pythonic) để đảm bảo rằng mã của bạn hoạt động theo cách được xác định rõ và giảm mọi hành vi không mong muốn Khi bạn đang thao tác với một tệp, có hai cách bạn có thể sử dụng để đảm bảo rằng tệp được đóng đúng cách, ngay cả khi gặp lỗi. Cách đầu tiên để đóng tệp là sử dụng khối myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)59 file.write("any data")7 Nếu bạn không biết khối myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)59 là gì, hãy xem Python Exceptions. Một lời giới thiệu Cách thứ hai để đóng tệp là sử dụng câu lệnh f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()01 myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)5 Câu lệnh f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()01 tự động đóng tệp sau khi nó rời khỏi khối f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()01, ngay cả trong trường hợp có lỗi. Tôi thực sự khuyên bạn nên sử dụng câu lệnh f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()01 càng nhiều càng tốt, vì nó cho phép mã sạch hơn và giúp bạn xử lý mọi lỗi không mong muốn dễ dàng hơn Rất có thể, bạn cũng sẽ muốn sử dụng đối số vị trí thứ hai, f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()05. Đối số này là một chuỗi chứa nhiều ký tự để thể hiện cách bạn muốn mở tệp. Mặc định và phổ biến nhất là f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()06, đại diện cho việc mở tệp ở chế độ chỉ đọc dưới dạng tệp văn bản f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()0 Các tùy chọn khác cho các chế độ được ghi lại đầy đủ trực tuyến, nhưng những tùy chọn được sử dụng phổ biến nhất là những tùy chọn sau Ý nghĩa ký tự f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()06Mở để đọc (mặc định) f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()08Mở để ghi, cắt bớt (ghi đè) tệp trước f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()09 hoặc 10Mở ở chế độ nhị phân (đọc/ghi bằng dữ liệu byte)Hãy quay lại và nói một chút về các đối tượng tệp. Một đối tượng tập tin là
Có ba loại đối tượng tệp khác nhau
Mỗi loại tệp này được xác định trong mô-đun 13. Dưới đây là tóm tắt nhanh về cách mọi thứ sắp xếpLoại bỏ các quảng cáoCác loại tệp văn bảnTệp văn bản là tệp phổ biến nhất mà bạn sẽ gặp. Dưới đây là một số ví dụ về cách các tệp này được mở 1Với các loại tệp này, myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)56 sẽ trả về một đối tượng tệp 15>>> file = open("myfile.txt", "r+") file.read()90 Đây là đối tượng tệp mặc định được trả về bởi myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)56 Các loại tệp nhị phân được đệmLoại tệp nhị phân được đệm được sử dụng để đọc và ghi tệp nhị phân. Dưới đây là một số ví dụ về cách các tệp này được mở file = open("myfile.txt", "r+") file.read()91 Với các loại tệp này, myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)56 sẽ trả về đối tượng tệp 18 hoặc 19>>> file = open("myfile.txt", "r+") file.read()92 Các loại tệp thôMột loại tệp thô là
Do đó nó thường không được sử dụng Đây là một ví dụ về cách các tệp này được mở file = open("myfile.txt", "r+") file.read()93 Với các loại tệp này, myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)56 sẽ trả về đối tượng tệp file = open("myfile.txt", "r+") file.read()901 >>> file = open("myfile.txt", "r+") file.read()94 Đọc và ghi tệp đã mởKhi bạn đã mở một tệp, bạn sẽ muốn đọc hoặc ghi vào tệp. Trước hết, hãy đọc một tập tin. Có nhiều phương thức có thể được gọi trên một đối tượng tệp để giúp bạn giải quyết MethodWhat It Does file = open("myfile.txt", "r+") file.read()902Điều này đọc từ tệp dựa trên số lượng byte file = open("myfile.txt", "r+") file.read()903. Nếu không có đối số nào được chuyển hoặc file = open("myfile.txt", "r+") file.read()904 hoặc file = open("myfile.txt", "r+") file.read()905 được chuyển thì toàn bộ tệp sẽ được đọc. file = open("myfile.txt", "r+") file.read()906Điều này đọc tối đa file = open("myfile.txt", "r+") file.read()903 số ký tự từ dòng. Điều này tiếp tục đến cuối dòng và sau đó quấn lại. Nếu không có đối số nào được chuyển hoặc file = open("myfile.txt", "r+") file.read()904 hoặc file = open("myfile.txt", "r+") file.read()905 được chuyển, thì toàn bộ dòng (hoặc phần còn lại của dòng) sẽ được đọc. file = open("myfile.txt", "r+") file.read()910Điều này đọc các dòng còn lại từ đối tượng tệp và trả về chúng dưới dạng danh sách Sử dụng cùng một tệp file = open("myfile.txt", "r+") file.read()46 mà bạn đã sử dụng ở trên, hãy xem qua một số ví dụ về cách sử dụng các phương thức này. Đây là một ví dụ về cách mở và đọc toàn bộ tệp bằng cách sử dụng file = open("myfile.txt", "r+") file.read()912 >>> file = open("myfile.txt", "r+") file.read()95 Đây là một ví dụ về cách đọc 5 byte của một dòng mỗi lần bằng phương thức Python file = open("myfile.txt", "r+") file.read()913 >>> file = open("myfile.txt", "r+") file.read()96 Đây là một ví dụ về cách đọc toàn bộ tệp dưới dạng danh sách bằng phương thức Python file = open("myfile.txt", "r+") file.read()910 >>> file = open("myfile.txt", "r+") file.read()97 Ví dụ trên cũng có thể được thực hiện bằng cách sử dụng file = open("myfile.txt", "r+") file.read()915 để tạo danh sách ngoài đối tượng tệp >>> file = open("myfile.txt", "r+") file.read()98Loại bỏ các quảng cáo Lặp lại từng dòng trong tệpMột điều phổ biến cần làm trong khi đọc tệp là lặp lại từng dòng. Đây là một ví dụ về cách sử dụng phương pháp Python file = open("myfile.txt", "r+") file.read()913 để thực hiện phép lặp đó >>> file = open("myfile.txt", "r+") file.read()99 Một cách khác để bạn có thể lặp lại từng dòng trong tệp là sử dụng phương thức Python file = open("myfile.txt", "r+") file.read()910 của đối tượng tệp. Hãy nhớ rằng, file = open("myfile.txt", "r+") file.read()910 trả về một danh sách trong đó mỗi phần tử trong danh sách đại diện cho một dòng trong tệp >>> file.write("any data")50 Tuy nhiên, các ví dụ trên có thể được đơn giản hóa hơn nữa bằng cách lặp lại trên chính đối tượng tệp >>> file.write("any data")51 Cách tiếp cận cuối cùng này mang tính Pythonic hơn và có thể nhanh hơn và hiệu quả hơn về bộ nhớ. Do đó, bạn nên sử dụng cái này để thay thế Ghi chú. Một số ví dụ trên có chứa file = open("myfile.txt", "r+") file.read()919. file = open("myfile.txt", "r+") file.read()920 là để ngăn Python thêm một dòng mới bổ sung vào văn bản đang được in và chỉ in những gì đang được đọc từ tệp Bây giờ hãy đi sâu vào việc ghi tệp. Đối với việc đọc tệp, các đối tượng tệp có nhiều phương thức hữu ích để ghi vào tệp MethodWhat It Does file = open("myfile.txt", "r+") file.read()921This ghi chuỗi vào tệp. file = open("myfile.txt", "r+") file.read()922Điều này ghi trình tự vào tệp. Không có kết thúc dòng nào được thêm vào mỗi mục trình tự. Tùy thuộc vào bạn để thêm (các) kết thúc dòng thích hợp Đây là một ví dụ nhanh về việc sử dụng file = open("myfile.txt", "r+") file.read()923 và file = open("myfile.txt", "r+") file.read()924 file.write("any data")52 Làm việc với byteĐôi khi, bạn có thể cần phải làm việc với các tệp sử dụng chuỗi byte. Điều này được thực hiện bằng cách thêm ký tự file = open("myfile.txt", "r+") file.read()925 vào đối số f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()05. Tất cả các phương pháp tương tự cho đối tượng tệp được áp dụng. Tuy nhiên, thay vào đó, mỗi phương thức đều mong đợi và trả về một đối tượng file = open("myfile.txt", "r+") file.read()927 >>> file.write("any data")53 Mở tệp văn bản bằng cờ file = open("myfile.txt", "r+") file.read()928 không thú vị lắm. Giả sử chúng ta có bức ảnh dễ thương này về Jack Russell Terrier ( file = open("myfile.txt", "r+") file.read()929)Hình ảnh. CC BY 3. 0 (https. //Commons sáng tạo. org/giấy phép/bởi/3. 0)], từ Wikimedia Commons Bạn thực sự có thể mở tệp đó bằng Python và kiểm tra nội dung. Do định dạng tệp file = open("myfile.txt", "r+") file.read()930 được xác định rõ, tiêu đề của tệp là 8 byte được chia nhỏ như thế này ValueInterpretation file = open("myfile.txt", "r+") file.read()931Một số “ma thuật” để chỉ ra rằng đây là phần đầu của một ____2932____2933 file = open("myfile.txt", "r+") file.read()932 trong ASCII file = open("myfile.txt", "r+") file.read()935A kết thúc dòng kiểu DOS myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)50 file = open("myfile.txt", "r+") file.read()937A ký tự EOF kiểu DOS file = open("myfile.txt", "r+") file.read()938A kết thúc dòng kiểu Unix file.write("any data")78 Chắc chắn rồi, khi bạn mở tệp và đọc từng byte này, bạn có thể thấy rằng đây thực sự là tệp tiêu đề file = open("myfile.txt", "r+") file.read()930 >>> file.write("any data")54Loại bỏ các quảng cáo Một ví dụ đầy đủ. file = open("myfile.txt", "r+") file.read() 941Hãy mang toàn bộ nội dung này về nhà và xem một ví dụ đầy đủ về cách đọc và ghi vào một tệp. Sau đây là một công cụ tương tự như file = open("myfile.txt", "r+") file.read()942 sẽ chuyển đổi một tệp chứa kết thúc dòng của myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)50 thành file.write("any data")78 Công cụ này được chia thành ba phần chính. Đầu tiên là file = open("myfile.txt", "r+") file.read()945, chuyển đổi một chuỗi từ kết thúc dòng myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)50 thành file.write("any data")78. Thứ hai là file = open("myfile.txt", "r+") file.read()948, chuyển đổi một chuỗi chứa myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)50 ký tự thành file.write("any data")78. file = open("myfile.txt", "r+") file.read()948 cuộc gọi nội bộ file = open("myfile.txt", "r+") file.read()945. Cuối cùng, có khối file = open("myfile.txt", "r+") file.read()953, khối này chỉ được gọi khi tệp được thực thi dưới dạng tập lệnh. Hãy nghĩ về nó như hàm file = open("myfile.txt", "r+") file.read()954 được tìm thấy trong các ngôn ngữ lập trình khác file.write("any data")55 Các mẹo và thủ thuậtBây giờ bạn đã nắm vững kiến thức cơ bản về đọc và ghi tệp, dưới đây là một số mẹo và thủ thuật giúp bạn phát triển kỹ năng của mình file = open("myfile.txt", "r+") file.read() 955Thuộc tính file = open("myfile.txt", "r+") file.read()955 là thuộc tính đặc biệt của module, tương tự như file = open("myfile.txt", "r+") file.read()957. Nó là
Ghi chú. Để lặp lại, file = open("myfile.txt", "r+") file.read()955 trả về đường dẫn liên quan đến nơi tập lệnh Python ban đầu được gọi. Nếu bạn cần đường dẫn hệ thống đầy đủ, bạn có thể sử dụng file = open("myfile.txt", "r+") file.read()959 để lấy thư mục làm việc hiện tại của mã thực thi của bạn Đây là một ví dụ thực tế. Ở một trong những công việc trước đây của mình, tôi đã thực hiện nhiều thử nghiệm cho một thiết bị phần cứng. Mỗi bài kiểm tra được viết bằng tập lệnh Python với tên tệp tập lệnh kiểm tra được sử dụng làm tiêu đề. Các tập lệnh này sau đó sẽ được thực thi và có thể in trạng thái của chúng bằng thuộc tính đặc biệt file = open("myfile.txt", "r+") file.read()955. Đây là một cấu trúc thư mục ví dụ file.write("any data")56 Đang chạy file = open("myfile.txt", "r+") file.read()961 tạo ra như sau file.write("any data")57 Tôi có thể chạy và nhận trạng thái của tất cả các bài kiểm tra của mình một cách linh hoạt thông qua việc sử dụng thuộc tính đặc biệt file = open("myfile.txt", "r+") file.read()955 Thêm vào một tập tinĐôi khi, bạn có thể muốn nối thêm vào tệp hoặc bắt đầu viết ở cuối tệp đã điền. Điều này được thực hiện dễ dàng bằng cách sử dụng ký tự file = open("myfile.txt", "r+") file.read()963 cho đối số f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()05 file.write("any data")58 Khi bạn kiểm tra lại file = open("myfile.txt", "r+") file.read()46, bạn sẽ thấy rằng phần đầu của tệp không thay đổi và file = open("myfile.txt", "r+") file.read()966 hiện được thêm vào cuối tệp >>> file.write("any data")59Loại bỏ các quảng cáo Làm việc với hai tệp cùng một lúcĐôi khi bạn có thể muốn đọc một tệp và ghi vào một tệp khác cùng một lúc. Nếu bạn sử dụng ví dụ được hiển thị khi bạn đang học cách ghi vào một tệp, nó thực sự có thể được kết hợp thành như sau 0Tạo trình quản lý bối cảnh của riêng bạnCó thể đến lúc bạn cần kiểm soát tốt hơn đối tượng tệp bằng cách đặt nó bên trong một lớp tùy chỉnh. Khi bạn làm điều này, việc sử dụng câu lệnh f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()01 không còn có thể được sử dụng trừ khi bạn thêm một vài phương thức kỳ diệu. file = open("myfile.txt", "r+") file.read()968 và file = open("myfile.txt", "r+") file.read()969. Bằng cách thêm những thứ này, bạn sẽ tạo ra cái được gọi là trình quản lý ngữ cảnh file = open("myfile.txt", "r+") file.read()970 được gọi khi gọi câu lệnh f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()01. file = open("myfile.txt", "r+") file.read()972 được gọi khi thoát khỏi khối câu lệnh f = open('my_file.txt', 'w+') file_content = f.read() f.write('Hello World') f.close()01 Đây là một mẫu mà bạn có thể sử dụng để tạo lớp tùy chỉnh của mình 1Bây giờ bạn đã có lớp tùy chỉnh hiện là trình quản lý ngữ cảnh, bạn có thể sử dụng nó tương tự như lớp tích hợp sẵn myline = "Welcome to entechin.com\n,"Hope we learn something from here\n" file.writelines(myline)56 2Đây là một ví dụ tốt. Bạn có nhớ hình ảnh Jack Russell dễ thương mà chúng ta có không? . Đây là một ví dụ về cách làm điều này. Ví dụ này cũng sử dụng trình vòng lặp tùy chỉnh. Nếu bạn không quen thuộc với chúng, hãy xem Python Iterators 3Giờ đây, bạn có thể mở các tệp file = open("myfile.txt", "r+") file.read()930 và phân tích cú pháp đúng cách bằng trình quản lý ngữ cảnh tùy chỉnh của mình >>> 4Đừng phát minh lại con rắnMột số tình huống phổ biến mà bạn có thể gặp phải khi làm việc với tệp. Hầu hết các trường hợp này có thể được xử lý bằng các mô-đun khác. Hai loại tệp phổ biến mà bạn có thể cần phải làm việc là 9 và file = open("myfile.txt", "r+") file.read()978. Real Python đã tập hợp một số bài viết tuyệt vời về cách xử lý những
Ngoài ra, có các thư viện tích hợp sẵn mà bạn có thể sử dụng để giúp bạn
Có rất nhiều hơn nữa ngoài kia. Ngoài ra, thậm chí còn có nhiều công cụ của bên thứ ba hơn trên PyPI. Một số cái phổ biến như sau
Bạn là một thuật sĩ tập tin HarryBạn làm được rồi. Bây giờ bạn đã biết cách làm việc với các tệp bằng Python, bao gồm một số kỹ thuật nâng cao. Làm việc với các tệp trong Python giờ đây sẽ dễ dàng hơn bao giờ hết và là một cảm giác bổ ích khi bạn bắt đầu làm việc đó Trong hướng dẫn này, bạn đã học
Nếu bạn có bất kỳ câu hỏi nào, hãy đánh chúng tôi trong phần bình luận Lấy bài kiểm tra. Kiểm tra kiến thức của bạn với bài kiểm tra tương tác “Đọc và ghi tệp bằng Python” của chúng tôi. Sau khi hoàn thành, bạn sẽ nhận được điểm số để có thể theo dõi quá trình học tập của mình theo thời gian Lấy bài kiểm tra " Đánh dấu là đã hoàn thành Xem ngay Hướng dẫn này có một khóa học video liên quan do nhóm Real Python tạo. Xem nó cùng với hướng dẫn bằng văn bản để hiểu sâu hơn. Đọc và ghi tệp bằng Python 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về James Mertz James là một nhà phát triển Python đam mê tại Phòng thí nghiệm Động cơ phản lực của NASA, người cũng viết bài cho Real Python » Thông tin thêm về JamesMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Aldren David Joanna Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bậc thầy Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. Nhận các mẹo để đặt câu hỏi hay và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi Làm thế nào bạn có thể mở một tệp để đọc và viết bằng Python, hãy đưa ra một ví dụ?Mở tệp bằng Python
. Hàm này trả về một đối tượng tệp, còn được gọi là tay cầm, vì nó được sử dụng để đọc hoặc sửa đổi tệp cho phù hợp. Chúng tôi có thể chỉ định chế độ trong khi mở tệp. Trong chế độ, chúng tôi chỉ định xem chúng tôi muốn đọc r , viết w hay nối a vào tệp. Python has a built-in open() function to open a file. This function returns a file object, also called a handle, as it is used to read or modify the file accordingly. We can specify the mode while opening a file. In mode, we specify whether we want to read r , write w or append a to the file.
Chế độ truy cập tệp nào cho phép mở một tệp để đọc và ghi?“wb+” – Mở cho cả đọc và viết ở chế độ nhị phân . Nếu tệp tồn tại, nội dung của nó sẽ bị ghi đè. Nếu tệp không tồn tại, nó sẽ được tạo.
Chức năng nào cho phép đọc và ghi tệp trong Python?Đây là một số hàm trong Python cho phép bạn đọc và ghi vào tệp. . đọc(). Hàm này đọc toàn bộ tệp và trả về một chuỗi dòng đọc (). Hàm này đọc các dòng từ tệp đó và trả về dưới dạng một chuỗi. . đường đọc (). Hàm này trả về một danh sách trong đó mỗi phần tử là một dòng của tệp đó |