Bộ đệm ghi Python vào tệp

Chuyển đến nội dung chính

Giới thiệu về Python

Nắm vững kiến ​​thức cơ bản về phân tích dữ liệu với Python chỉ trong bốn giờ. Khóa học trực tuyến này sẽ giới thiệu giao diện Python và khám phá các gói phổ biến

Python trung cấp

Nâng cao kỹ năng khoa học dữ liệu của bạn bằng cách tạo trực quan hóa bằng Matplotlib và thao tác với DataFrames bằng gấu trúc

Phương thức tệp Python flush[] xóa bộ đệm bên trong, như fflush của stdio. Điều này có thể không hoạt động trên một số đối tượng giống như tệp

Python tự động xóa các tệp khi đóng chúng. Nhưng bạn có thể muốn xóa dữ liệu trước khi đóng bất kỳ tệp nào

Chúng ta có thể nghĩ rằng bộ đệm là một lớp trung gian khi dữ liệu bộ nhớ được ghi vào đĩa cứng để giảm số lần ghi đĩa cứng. Ví dụ: xem xét chúng tôi tải xuống tệp 500 MB, nếu chúng tôi ghi 1 MB một lần vào đĩa cứng, chúng tôi phải ghi 500 lần. Nhưng nếu chúng tôi ghi 50 MB một lần, chúng tôi chỉ ghi 50 lần vào đĩa cứng

Ở đây chúng tôi thu hẹp khái niệm này trong Python senario

Cách Python sử dụng bộ đệm khi ghi tệp

Hàm

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
1 tích hợp có tùy chọn
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
2 đặt chính sách bộ đệm khi mở tệp. Nhưng tùy chọn đệm là

API hệ thống đã cung cấp API hệ thống cho tùy chọn bộ đệm, vì vậy chức năng mở chỉ là một trình bao bọc xung quanh lệnh gọi hệ thống

Có chính sách bộ đệm khác nhau tùy theo loại tệp [Nhị phân/Văn bản] và số tham số [-1,0,1,>1]

  • io. DEFAULT_BUFFER_SIZE. Kích thước bộ đệm mặc định của hệ thống, 8192 byte [8KB]
  • không có bộ đệm. không sử dụng bộ đệm. Có sẵn ở chế độ tệp nhị phân. Nó có nghĩa là ghi vào đĩa cứng trong mọi hành động
  • đệm dòng. đệm mỗi dòng. Có sẵn ở chế độ tệp văn bản. Nó có nghĩa là ghi vào đĩa cứng trong mọi dòng văn bản
  • kích thước bộ đệm được chỉ định. đặt kích thước bạn muốn đệm. Có sẵn ở chế độ tệp nhị phân
Chính sách đệm khác nhau

Chúng tôi sử dụng hàm

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
3 để hiển thị chính sách bộ đệm khác nhau. Nếu chúng tôi không gọi
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
4 hoặc
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
5, dữ liệu sẽ không được ghi vào đĩa cứng. Nếu chúng tôi đặt chính sách đệm dòng, mọi dòng sẽ được ghi vào đĩa cứng. Nếu chúng ta đặt kích thước bộ đệm, dữ liệu lớn hơn kích thước bộ đệm sẽ được ghi vào đĩa cứng

Trong Python, mô-đun IO cung cấp các phương thức của ba loại hoạt động IO; . Cách chính tắc để tạo một đối tượng tệp là sử dụng hàm

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
2

Mọi thao tác với tệp có thể được thực hiện theo ba bước sau

  1. Mở tệp để lấy đối tượng tệp bằng hàm open[] tích hợp. Có các chế độ truy cập khác nhau mà bạn có thể chỉ định trong khi mở tệp bằng hàm open[]
  2. 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
    >>> f = open['C:\myfile.txt'] # opening a file
    >>> lines = f.read[] # reading a file
    >>> lines
    'This is the first line. \nThis is the second line.\nThis is the third line.'
    >>> f.close[] # closing file object
    
    2
  3. Đóng và xử lý đối tượng tệp

Đọc tập tin

Đối tượng tệp bao gồm các phương thức sau để đọc dữ liệu từ tệp

  • đọc [ký tự]. đọc số lượng ký tự được chỉ định bắt đầu từ vị trí hiện tại
  • dòng đọc []. đọc các ký tự bắt đầu từ vị trí đọc hiện tại cho đến một ký tự xuống dòng
  • đường đọc []. đọc tất cả các dòng cho đến khi kết thúc tệp và trả về một đối tượng danh sách

Tệp

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
4 sau đây sẽ được sử dụng trong tất cả các ví dụ về đọc và ghi tệp

C. \tập tin của tôi. txt

Sao chép

This is the first line. 
This is the second line.
This is the third line.

Ví dụ sau thực hiện thao tác đọc bằng phương thức

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
5

Thí dụ. Đọc một tập tin

Sao chép

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object

Ở trên,

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
6 mở
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
7 ở chế độ đọc mặc định từ thư mục hiện tại và trả về một đối tượng tệp. Hàm
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
8 đọc tất cả nội dung cho đến khi EOF dưới dạng chuỗi. Nếu bạn chỉ định đối số kích thước ký tự trong phương thức
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
5, thì nó sẽ chỉ đọc nhiều ký tự đó.
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
00 sẽ xả và đóng luồng

đọc một dòng

Ví dụ sau minh họa việc đọc một dòng từ tệp

Thí dụ. đọc dòng

Sao chép

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
0

Như bạn có thể thấy, chúng tôi phải mở tệp ở chế độ

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
01. Phương thức
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
02 sẽ trả về dòng đầu tiên và sau đó sẽ trỏ đến dòng thứ hai trong tệp

Đọc tất cả các dòng

Phần sau đọc tất cả các dòng bằng hàm

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
03

Thí dụ. Đọc một tập tin

Sao chép

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
5

Đối tượng tệp có một trình vòng lặp sẵn có. Chương trình sau đây đọc từng dòng tệp đã cho cho đến khi

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
04 được nâng lên, i. e. , EOF đạt được

Thí dụ. Trình lặp tệp

Sao chép

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
7

Sử dụng vòng lặp for để đọc tệp dễ dàng

Thí dụ. Đọc tệp bằng vòng lặp For

Sao chép

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
8

đầu ra

This is the first line. 
This is the second line.
This is the third line.

Đọc tệp nhị phân

Sử dụng chế độ 'rb' trong hàm

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
2 để đọc tệp nhị phân, như hình bên dưới

Thí dụ. Đọc một tập tin

Sao chép

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
1

Viết vào một tập tin

Đối tượng tệp cung cấp các phương thức sau để ghi vào tệp

  • viết [s]. Viết chuỗi s vào luồng và trả về số ký tự đã viết
  • dòng viết [dòng]. Viết danh sách các dòng vào luồng. Mỗi dòng phải có dấu phân cách ở cuối dòng

Tạo một tệp mới và ghi

Sau đây tạo một tệp mới nếu nó không tồn tại hoặc ghi đè lên một tệp hiện có

Thí dụ. Tạo hoặc ghi đè lên tệp hiện có

Sao chép

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
2

Trong ví dụ trên, câu lệnh

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
06 mở
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
7 ở chế độ ghi, phương thức
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
2 trả về đối tượng tệp và gán nó cho một biến
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
09.
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
50 chỉ định rằng tệp có thể ghi được. Tiếp theo,
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
51 ghi đè nội dung hiện có của tệp
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
7. Nó trả về số ký tự được ghi vào một tệp, là 5 trong ví dụ trên. Cuối cùng,
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
00 đóng đối tượng tệp

Nối vào một tệp hiện có

Phần sau nối nội dung vào cuối tệp hiện có bằng cách chuyển chế độ

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
54 hoặc
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
55 trong phương thức
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
2

Thí dụ. Nối vào tệp hiện có

Sao chép

This is the first line. 
This is the second line.
This is the third line.
4

Viết nhiều dòng

Python cung cấp phương thức

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
57 để lưu nội dung của đối tượng danh sách vào một tệp. Vì ký tự dòng mới không được ghi tự động vào tệp nên nó phải được cung cấp như một phần của chuỗi

Thí dụ. Viết dòng vào tập tin

Sao chép

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
0

Việc mở tệp bằng chế độ "w" hoặc chế độ "a" chỉ có thể được ghi vào và không thể đọc được từ. Tương tự, chế độ "r" chỉ cho phép đọc và không ghi. Để thực hiện các thao tác đọc/chắp thêm đồng thời, hãy sử dụng chế độ "a+"

Ghi vào tệp nhị phân

Hàm

>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
2 mở tệp ở định dạng văn bản theo mặc định. Để mở tệp ở định dạng nhị phân, hãy thêm
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
59 vào tham số chế độ. Do đó, chế độ
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
70 mở tệp ở định dạng nhị phân để đọc, trong khi chế độ
>>> f = open['C:\myfile.txt'] # opening a file
>>> lines = f.read[] # reading a file
>>> lines
'This is the first line. \nThis is the second line.\nThis is the third line.'
>>> f.close[] # closing file object
71 mở tệp ở định dạng nhị phân để ghi. Không giống như tệp văn bản, tệp nhị phân không thể đọc được bằng con người. Khi mở bằng bất kỳ trình soạn thảo văn bản nào, dữ liệu không thể nhận dạng được

Đoạn mã sau lưu trữ danh sách các số trong tệp nhị phân. Danh sách đầu tiên được chuyển đổi trong một mảng byte trước khi viết. Hàm tích hợp bytearray[] trả về một biểu diễn byte của đối tượng

Tệp Python có được ghi vào bộ đệm không?

Theo mặc định, Python đệm đầu ra của bạn và ghi vào tệp theo khối lớn . Điều này nhanh hơn việc viết số lượng nhỏ thường xuyên hơn, nhưng điều đó có nghĩa là đầu ra của bạn có thể không thực sự xuất hiện trong tệp cho đến khi bạn đóng tệp và Python xóa bộ đệm.

Bộ đệm tệp trong Python là gì?

Cấu trúc bộ đệm [hoặc đơn giản là “bộ đệm”] hữu ích vì một cách để hiển thị dữ liệu nhị phân từ một đối tượng khác cho lập trình viên Python . Chúng cũng có thể được sử dụng như một cơ chế cắt không sao chép. Sử dụng khả năng tham chiếu một khối bộ nhớ của họ, có thể hiển thị bất kỳ dữ liệu nào cho lập trình viên Python khá dễ dàng.

Tôi có thể ghi vào tệp bằng Python không?

Python cung cấp cho chúng ta hai phương thức để ghi vào tệp văn bản. phương thức write[] để chèn một chuỗi vào một dòng trong tệp văn bản. phương thức writelines[] để chèn đồng thời nhiều chuỗi từ danh sách các chuỗi vào tệp văn bản .

Chủ Đề