Chế độ WB trong Python là gì?

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

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 Python

Có 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 tin nhị phân
  • tệp văn bản

Tệp nhị phân trong Python

Hầ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

Thí dụ

  1. tập tin tài liệu. . pdf,. tài liệu,. xls, v.v.
  2. tập tin hình ảnh. . png,. jpg,. ảnh gif,. bmp, v.v.
  3. Tập video. . mp4,. 3gp,. mkv,. avi, v.v.
  4. Tập tin âm thanh. . mp3,. sóng,. tôi,. aac, v.v.
  5. tệp cơ sở dữ liệu. . mdb,. gia nhập,. từ,. sqlite, v.v.
  6. tập tin lưu trữ. . khóa kéo,. rar,. iso,. 7z, v.v.
  7. Các tập tin thực thi. . exe,. dll,. lớp vv

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 Python

Cá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

Thí dụ

  • tiêu chuẩn web. html, XML, CSS, JSON, v.v.
  • Mã nguồn. c, ứng dụng, js, py, java, v.v.
  • Các tài liệu. txt, tex, RTF, v.v.
  • Dữ liệu dạng bảng. csv, tsv, v.v.
  • Cấu hình. ini, cfg, reg, v.v.

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 Python

Quan trọng nhất là có 4 loại thao tác mà Python có thể xử lý trên tệp

  • Mở ra
  • Đọc
  • Viết
  • Đóng

Các hoạt động khác bao gồm

  • Đổi tên
  • Xóa bỏ

Python Tạo và Mở Tệp

Python 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

  • 'r' - Chế độ đọc. Chế độ đọc chỉ được sử dụng để đọc dữ liệu từ tệp
  • 'w' - Chế độ ghi. Chế độ này được sử dụng khi bạn muốn ghi dữ liệu vào tệp hoặc sửa đổi nó. Chế độ ghi nhớ ghi đè lên dữ liệu có trong tệp
  • 'a' - Chế độ chắp thêm. Chế độ nối thêm được sử dụng để nối thêm dữ liệu vào tệp. Dữ liệu ghi nhớ sẽ được thêm vào cuối con trỏ tệp
  • ‘r+’ – Chế độ đọc hoặc ghi. Chế độ này được sử dụng khi chúng ta muốn ghi hoặc đọc dữ liệu từ cùng một tệp
  • 'a+' – Chế độ thêm hoặc đọc. Chế độ này được sử dụng khi chúng ta muốn đọc dữ liệu từ tệp hoặc nối thêm dữ liệu vào cùng 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

  • ‘wb’ – Mở tệp ở chế độ chỉ ghi ở định dạng nhị phân
  • 'rb' - Mở tệp cho chế độ chỉ đọc ở định dạng nhị phân
  • 'ab' - Mở tệp cho chế độ chỉ nối thêm ở định dạng nhị phân
  • ‘rb+’ – Mở tệp ở chế độ chỉ đọc và ghi ở định dạng nhị phân
  • 'ab+' - Mở tệp để nối thêm và chế độ chỉ đọc ở định dạng 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

  • đã đọc[[n]]
  • dòng đọc[[n]]
  • đường đọc []

Ở đâ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

Chào thế giới
Xin chào con trăn
Buổi sáng tốt lành

Ở đâ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

Chào thế giới
Xin chào con trăn
Buổi sáng tốt lành
Bạn khỏe không

đầ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

  • viết [chuỗi]
  • dòng viết [danh sách]

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ỏ

tìm kiếm [bù đắp]. Phần bù có ba loại đối số là 0,1 và 2
Khi offset bằng 0. Tham chiếu sẽ được trỏ vào đầu tệp
Khi độ lệch là 1. Tham chiếu sẽ được chỉ vào vị trí con trỏ hiện tại
Khi độ lệch là 2. Tài liệu tham khảo sẽ được chỉ vào cuối tập tin

đầ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 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ệp

Python 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ệp

Mã 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ệ điều hành Microsoft Windows sử dụng định dạng mã hóa 'cp1252' theo mặc định
  • Hệ điều hành Linux hoặc Unix sử dụng định dạng mã hóa 'utf-8' theo mặc định
  • Hệ điều hành MAC của Apple sử dụng định dạng mã hóa 'utf-8' hoặc 'utf-16' theo mặc định

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ân

Cá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

Thí 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'
dữ liệu bình thường. Xin chào con trăn

đầu ra

Thuộc tính tệp I/O

AttributeDescriptionNameTrả 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

Thí dụ

fo = open[“C:/Documents/Python/img.bmp”, “rb+”]
9

đầu ra

Tên tập tin là gì? . /Documents/Python/test. txt
Chế độ tập tin là gì?
Định dạng mã hóa là gì?
Tệp có bị đóng không?
Tệp có bị đóng không?

đầu ra

Hãy thử một vài phương pháp khác của tệp

Thí dụ

my_file = open[“C:/Documents/Python/test.txt”, “r”]
print[my_file.read[5]]
0

đầu ra

Xin chào con trăn
Chào thế giới
Buổi sáng tốt lành
Tệp có thể đọc được không. ?
Tập tin có ghi được không. ?
Thư mục số. 3

đầu ra

Phương thức tệp Python

FunctionExplanationopen[] Để 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 đượcdòng đọc[]Đã đọc

MODE =' W b trong Python là gì?

Wb cho biết rằng tệp được mở để ghi ở chế độ nhị phân . Khi ghi ở chế độ nhị phân, Python không thay đổi dữ liệu khi nó được ghi vào tệp.

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

Tệp được tự động mở ở chế độ văn bản trong Python. Khi chọn chế độ, hãy bao gồm chữ "b" cho chế độ nhị phân. Theo mặc định, hàm open[] mở tệp ở định dạng văn bản. Kết quả là chế độ "wb" mở tệp ở định dạng nhị phân để ghi trong khi tùy chọn "rb" mở tệp ở định dạng nhị phân để đọc .

Sự khác biệt giữa W và W +' trong Python là gì?

The w có nghĩa là ghi tệp; . .

Chế độ W dùng để làm gì?

w - mở hoặc tạo tệp văn bản ở chế độ ghi . a - mở tệp ở chế độ chắp thêm. r+ - mở tệp ở cả chế độ đọc và ghi.

Chủ Đề