Làm cách nào để mở cùng một tệp khi đọc và ghi trong python?
Trong loạt bài hướng dẫn Python cho người mới bắt đầu, chúng ta đã tìm hiểu thêm về Hàm chuỗi Python trong bài hướng dẫn trước Show
Python cung cấp cho chúng ta một tính năng quan trọng là đọc dữ liệu từ tệp và ghi dữ liệu vào tệp Hầu hết, trong các ngôn ngữ lập trình, tất cả các giá trị hoặc dữ liệu được lưu trữ trong một số biến có tính chất dễ bay hơi Bởi vì dữ liệu sẽ được lưu trữ vào các biến đó chỉ trong thời gian chạy và sẽ bị mất khi quá trình thực thi chương trình hoàn tất. Do đó, tốt hơn là lưu những dữ liệu này vĩnh viễn bằng các tệp Bạn sẽ học được gì Python xử lý tệp như thế nào?Nếu bạn đang làm việc trong một ứng dụng phần mềm lớn, nơi chúng xử lý một lượng lớn dữ liệu, thì chúng ta không thể mong đợi những dữ liệu đó được lưu trữ trong một biến vì bản chất các biến là không ổn định Do đó, khi bạn chuẩn bị xử lý các tình huống như vậy, vai trò của các tệp sẽ xuất hiện Vì bản chất các tệp không dễ bay hơi, dữ liệu sẽ được lưu trữ vĩnh viễn trong một thiết bị thứ cấp như Đĩa cứng và sử dụng python, chúng tôi sẽ xử lý các tệp này trong các ứng dụng của mình Bạn đang nghĩ về cách python sẽ xử lý các tệp? Hãy lấy một Ví dụ về cách người bình thường sẽ xử lý tệp. Nếu muốn đọc dữ liệu từ tệp hoặc ghi dữ liệu vào tệp thì trước hết ta mở tệp hoặc tạo tệp mới nếu tệp chưa tồn tại rồi thực hiện các thao tác đọc/ghi thông thường. . Tương tự, chúng tôi thực hiện các thao tác tương tự trong python bằng một số phương thức hoặc hàm dựng sẵn Các loại tệp trong PythonCó hai loại tệp trong Python và mỗi loại được giải thích chi tiết bên dưới với các ví dụ để bạn dễ hiểu họ đang
Tệp nhị phân trong PythonHầu hết các tệp mà chúng tôi thấy trong hệ thống máy tính của mình được gọi là tệp nhị phân Ví dụ
Nên đọc =>> Cách mở. Tệp 7z Tất cả các tệp nhị phân tuân theo một định dạng cụ thể. Chúng tôi có thể mở một số tệp nhị phân trong trình soạn thảo văn bản thông thường nhưng chúng tôi không thể đọc nội dung có trong tệp. Đó là bởi vì tất cả các tệp nhị phân sẽ được mã hóa ở định dạng nhị phân, chỉ có máy tính hoặc máy mới có thể hiểu được Để xử lý các tệp nhị phân như vậy, chúng tôi cần một loại phần mềm cụ thể để mở nó Ví dụ: Bạn cần có phần mềm Microsoft word để mở. tập tin nhị phân doc. Tương tự như vậy, bạn cần một phần mềm đọc pdf để mở. pdf và bạn cần một phần mềm chỉnh sửa ảnh để đọc các tệp hình ảnh, v.v. Tệp văn bản trong PythonCác tệp văn bản không có bất kỳ mã hóa cụ thể nào và nó có thể được mở trong chính trình soạn thảo văn bản thông thường Ví dụ
Trong hướng dẫn này, chúng ta sẽ xem cách xử lý cả tệp văn bản cũng như tệp nhị phân với một số ví dụ cổ điển Thao tác xử lý tệp PythonQuan trọng nhất là có 4 loại thao tác mà Python có thể xử lý trên tệp
Các hoạt động khác bao gồm
Python Tạo và Mở TệpPython có một hàm dựng sẵn gọi là open() để mở tệp Phải mất tối thiểu một đối số như được đề cập trong cú pháp dưới đây. Phương thức mở trả về một đối tượng tệp được sử dụng để truy cập ghi, đọc và các phương thức dựng sẵn khác cú pháp file_object = open(file_name, mode) Ở đây, file_name là tên của tệp hoặc vị trí của tệp mà bạn muốn mở và tệp_name cũng phải có phần mở rộng tệp. Có nghĩa là trong thử nghiệm. txt – thuật ngữ test là tên của tệp và. txt là phần mở rộng của tập tin Chế độ trong cú pháp hàm mở sẽ cho Python biết bạn muốn thực hiện thao tác nào trên một tệp
Ghi chú. Các chế độ nêu trên chỉ dùng để mở, đọc hoặc ghi tệp văn bản. Trong khi sử dụng tệp nhị phân, chúng ta phải sử dụng các chế độ tương tự có chữ 'b' ở cuối. Để Python có thể hiểu rằng chúng ta đang tương tác với các tệp nhị phân
ví dụ 1 fo = open(“C:/Documents/Python/test.txt”, “r+”) Trong ví dụ trên, chúng tôi đang mở tệp có tên 'test. txt’ hiện tại vị trí ‘C. /Documents/Python/’ và chúng tôi đang mở cùng một tệp ở chế độ đọc-ghi giúp chúng tôi linh hoạt hơn ví dụ 2 fo = open(“C:/Documents/Python/img.bmp”, “rb+”) Trong ví dụ trên, chúng tôi đang mở tệp có tên 'img. bmp’ có mặt tại vị trí “C. /Documents/Python/”, Nhưng, ở đây chúng tôi đang cố mở tệp nhị phân Python đọc từ tệpĐể đọc một tệp trong python, chúng ta phải mở tệp ở chế độ đọc Có ba cách để chúng ta có thể đọc các tệp trong python
Ở đây, n là số byte được đọc Đầu tiên chúng ta tạo một file văn bản mẫu như hình bên dưới Bây giờ hãy quan sát xem mỗi phương thức đọc làm gì ví dụ 1 my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5)) đầu ra Xin chào Ở đây chúng ta đang mở file test. txt ở chế độ chỉ đọc và chỉ đọc 5 ký tự đầu tiên của tệp bằng my_file. đọc (5) phương pháp đầu ra ví dụ 2 my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read()) đầu ra Xin chào thế giới Ở đây chúng tôi chưa cung cấp bất kỳ đối số nào bên trong hàm read(). Do đó, nó sẽ đọc tất cả nội dung có trong tệp đầu ra ví dụ 3 my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline(2)) đầu ra Anh ta Hàm này trả về 2 ký tự đầu tiên của dòng tiếp theo đầu ra Ví dụ 4 my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readline()) đầu ra Chào thế giới Sử dụng chức năng này, chúng ta có thể đọc nội dung của tệp trên cơ sở từng dòng đầu ra Ví dụ 5 my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.readlines()) đầu ra [‘Xin chào thế giới\n’, ‘Xin chào Python\n’, ‘Chào buổi sáng’] Ở đây chúng tôi đang đọc tất cả các dòng có trong tệp văn bản bao gồm các ký tự dòng mới đầu ra Bây giờ hãy xem một số ví dụ thực tế hơn về việc đọc tệp Đọc một dòng cụ thể từ một Tệp ________số 8đầu ra Bạn khỏe không Trong ví dụ trên, chúng tôi đang cố gắng chỉ đọc dòng thứ 4 từ 'test'. txt' bằng cách sử dụng "vòng lặp for" đầu ra Đọc toàn bộ tập tin cùng một lúc filename = “C:/Documents/Python/test.txt” filehandle = open(filename, ‘r’) filedata = filehandle.read() print(filedata) đầu ra Xin chào thế giới đầu ra Python ghi vào tệpĐể ghi dữ liệu vào tệp ta phải mở tệp ở chế độ ghi Chúng ta cần hết sức cẩn thận khi ghi dữ liệu vào tệp vì nó sẽ ghi đè lên nội dung có trong tệp mà bạn đang ghi và tất cả dữ liệu trước đó sẽ bị xóa Chúng tôi có hai phương pháp để ghi dữ liệu vào một tệp như hình dưới đây
ví dụ 1 fo = open(“C:/Documents/Python/test.txt”, “r+”)0 Đoạn mã trên viết Chuỗi 'Xin chào thế giới' vào 'bài kiểm tra'. tập tin txt Trước khi ghi dữ liệu vào test. tập tin txt đầu ra ví dụ 2 fo = open(“C:/Documents/Python/test.txt”, “r+”)1 Dòng đầu tiên sẽ là 'Xin chào thế giới' và như chúng tôi đã đề cập đến ký tự \n, con trỏ sẽ di chuyển đến dòng tiếp theo của tệp và sau đó viết 'Xin chào Python' Hãy nhớ rằng nếu chúng ta không đề cập đến ký tự \n thì dữ liệu sẽ được ghi liên tục vào tệp văn bản như 'Xin chào WorldHelloPython' đầu ra ví dụ 3 fo = open(“C:/Documents/Python/test.txt”, “r+”)2 Đoạn mã trên viết một danh sách dữ liệu vào 'kiểm tra. txt’ đồng thời đầu ra Python nối vào tệpĐể nối thêm dữ liệu vào một tệp, chúng tôi phải mở tệp ở chế độ 'a+' để chúng tôi có quyền truy cập vào cả hai chế độ nối thêm cũng như ghi ví dụ 1 fo = open(“C:/Documents/Python/test.txt”, “r+”)3 Đoạn mã trên nối thêm chuỗi 'Apple' vào cuối 'kiểm tra. tập tin txt đầu ra ví dụ 2 fo = open(“C:/Documents/Python/test.txt”, “r+”)4 Đoạn mã trên nối thêm chuỗi 'Apple' vào cuối 'kiểm tra. txt’ trong một dòng mới đầu ra ví dụ 3 fo = open(“C:/Documents/Python/test.txt”, “r+”)5 Đoạn mã trên nối thêm một danh sách dữ liệu vào một 'kiểm tra. tập tin txt đầu ra Ví dụ 4 fo = open(“C:/Documents/Python/test.txt”, “r+”)6 Trong đoạn mã trên, chúng tôi đang thêm danh sách dữ liệu vào 'kiểm tra. tập tin txt. Ở đây, bạn có thể quan sát thấy rằng chúng tôi đã sử dụng phương thức tell() để in vị trí hiện tại của con trỏ seek(offset). Phần bù có ba loại đối số là 0,1 và 2. đầu ra Python Đóng tệpĐể đóng một tệp, trước hết ta phải mở tệp. Trong python, chúng ta có một phương thức được gọi là close() để đóng tệp được mở Bất cứ khi nào bạn mở một tệp, điều quan trọng là phải đóng tệp đó, đặc biệt là với phương thức ghi. Bởi vì nếu chúng ta không gọi hàm đóng sau phương thức ghi thì bất kỳ dữ liệu nào chúng ta đã ghi vào tệp sẽ không được lưu vào tệp ví dụ 1 fo = open(“C:/Documents/Python/test.txt”, “r+”)7 ví dụ 2 fo = open(“C:/Documents/Python/test.txt”, “r+”)8 Python đổi tên hoặc xóa tệpPython cung cấp cho chúng ta mô-đun “os” có một số phương thức dựng sẵn giúp chúng ta thực hiện các thao tác với tệp như đổi tên và xóa tệp Để sử dụng mô-đun này, trước hết, chúng ta cần nhập mô-đun “os” vào chương trình của mình và sau đó gọi các phương thức liên quan phương thức đổi tên () Phương thức rename() này chấp nhận hai đối số i. e. tên tệp hiện tại và tên tệp mới cú pháp fo = open(“C:/Documents/Python/test.txt”, “r+”)9 ví dụ 1 fo = open(“C:/Documents/Python/img.bmp”, “rb+”)0 Đây ‘kiểm tra. txt' là tên tệp hiện tại và 'test1. txt' là tên tệp mới Bạn có thể chỉ định vị trí cũng như được hiển thị trong ví dụ bên dưới ví dụ 2 fo = open(“C:/Documents/Python/img.bmp”, “rb+”)1 Trước khi đổi tên tệp Sau khi thực hiện chương trình trên loại bỏ() phương pháp Chúng tôi sử dụng phương thức remove() để xóa tệp bằng cách cung cấp tên tệp hoặc vị trí tệp mà bạn muốn xóa cú pháp fo = open(“C:/Documents/Python/img.bmp”, “rb+”)2 ví dụ 1 fo = open(“C:/Documents/Python/img.bmp”, “rb+”)3 Đây ‘kiểm tra. txt’ là tệp bạn muốn xóa Tương tự, chúng ta cũng có thể chuyển vị trí tệp cho các đối số như trong ví dụ bên dưới ví dụ 2 fo = open(“C:/Documents/Python/img.bmp”, “rb+”)4 Mã hóa trong tệpMã hóa tệp đại diện cho việc chuyển đổi các ký tự thành một định dạng cụ thể mà chỉ máy mới có thể hiểu được Các máy khác nhau có định dạng mã hóa khác nhau như hình bên dưới
Hãy xem hoạt động mã hóa với một số ví dụ ví dụ 1 fo = open(“C:/Documents/Python/img.bmp”, “rb+”)5 đầu ra Định dạng mã hóa Microsoft Windows theo mặc định là cp1252 Ở đây, tôi đã thực hiện chương trình của mình trên máy windows, vì vậy nó đã in bảng mã mặc định là ‘cp1252’ đầu ra Chúng ta cũng có thể thay đổi định dạng mã hóa của tệp bằng cách chuyển nó làm đối số cho hàm open ví dụ 2 fo = open(“C:/Documents/Python/img.bmp”, “rb+”)6 đầu ra Định dạng mã hóa tệp là. cp437 đầu ra ví dụ 3 fo = open(“C:/Documents/Python/img.bmp”, “rb+”)7 đầu ra Định dạng mã hóa tệp là. utf-16 đầu ra Viết và đọc dữ liệu từ tệp nhị phânCác tệp nhị phân lưu trữ dữ liệu ở định dạng nhị phân (0 và 1) mà máy có thể hiểu được. Vì vậy, khi chúng tôi mở tệp nhị phân trong máy của mình, nó sẽ giải mã dữ liệu và hiển thị ở định dạng mà con người có thể đọc được Ví dụ # Hãy tạo một số tệp nhị phân fo = open(“C:/Documents/Python/img.bmp”, “rb+”)8 Trong ví dụ trên, đầu tiên chúng ta tạo một tệp nhị phân 'bfile. bin’ với quyền truy cập đọc và ghi và bất kỳ dữ liệu nào bạn muốn nhập vào tệp phải được mã hóa trước khi bạn gọi phương thức ghi Ngoài ra, chúng tôi đang in dữ liệu mà không giải mã nó, để chúng tôi có thể quan sát dữ liệu trông chính xác như thế nào bên trong tệp khi nó được mã hóa và chúng tôi cũng đang in cùng một dữ liệu bằng cách giải mã dữ liệu đó để con người có thể đọc được đầu ra Dữ liệu nhị phân. b’Xin chào Python’ đầu ra Thuộc tính tệp I/OAttributeDescriptionNameTrả về tên của fileModeTrả về chế độ của fileEncodingTrả về định dạng mã hóa của fileClosedTrả về true nếu file đóng ngược lại trả về false Ví dụ fo = open(“C:/Documents/Python/img.bmp”, “rb+”)9 đầu ra Tên tệp là gì? . /Documents/Python/test. txt đầu ra Hãy thử một vài phương pháp khác của tệp Ví dụ my_file = open(“C:/Documents/Python/test.txt”, “r”) print(my_file.read(5))0 đầu ra Xin chào Python đầu ra Phương thức tệp PythonFunctionExplanationopen() Để mở một tệpđóng()Đóng một tệp đang mởfileno()Trả về một số nguyên của tệp đã đọc(n)Đọc 'n' ký tự từ tệp cho đến hết tệp có thể đọc được()Trả về true nếu tệp có thể đọc đượcreadline()Read Có thể mở một tệp để đọc và ghi cùng một lúc không?'r+' mở tệp cho cả đọc và ghi . Trên Windows, 'b' được thêm vào chế độ mở tệp ở chế độ nhị phân, do đó, cũng có các chế độ như 'rb', 'wb' và 'r+b'.
Bạn có thể mở một tệp để đọc và viết bằng Python không?Python có hàm open() tích hợp sẵn để mở tệp . 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.
Làm cách nào để thực hiện mở đọc ghi và đóng vào một tệp trong Python?Mọi thao tác với tệp đều có thể được thực hiện theo ba bước sau. . Mở tệp để lấy đối tượng tệp bằng hàm open() tích hợp. . Thực hiện các thao tác đọc, ghi, chắp thêm bằng cách sử dụng đối tượng tệp được lấy từ hàm open() Đóng và xử lý đối tượng tệp Chế độ truy cập tệp nào cho phép mở tệp để đọc và ghi bằng Python?Các chế độ truy cập có sẵn cho hàm open() như sau. . r. Mở tệp ở chế độ chỉ đọc. . rb. Mở tệp dưới dạng chỉ đọc ở định dạng nhị phân và bắt đầu đọc từ đầu tệp. . r+. Mở tệp để đọc và ghi, đặt con trỏ ở đầu tệp |