Làm thế nào để bạn đọc một tệp đối tượng trong python?

Khi làm việc với Python, bạn không cần nhập thư viện để đọc và ghi vào tệp. Nó được xử lý tự nhiên bằng ngôn ngữ, mặc dù theo một cách độc đáo. Dưới đây, chúng tôi phác thảo các bước đơn giản để đọc và ghi vào một tệp trong Python

Mục lục

  • Tổng quan
  • Loại tập tin
  • Đọc tệp bằng Python
  • Viết tệp bằng Python
  • Chế độ mở tệp
  • Đóng tệp bằng Python
  • Mở các loại tệp khác
  • với tuyên bố
  • Tách dòng trong tệp văn bản
  • Sự kết luận

Điều đầu tiên bạn cần làm là sử dụng hàm mở tệp python tích hợp để lấy một đối tượng tệp

Hàm open mở một tệp. nó đơn giản. Đây là bước đầu tiên trong việc đọc và ghi tệp trong python

Làm thế nào để bạn đọc một tệp đối tượng trong python?

Khi bạn sử dụng chức năng mở, nó sẽ trả về một thứ gọi là đối tượng tệp. Các đối tượng tệp chứa các phương thức và thuộc tính có thể được sử dụng để thu thập thông tin về tệp bạn đã mở. Chúng cũng có thể được sử dụng để thao tác với tệp đã nói

Ví dụ: thuộc tính chế độ của đối tượng tệp cho bạn biết tệp được mở ở chế độ nào. Và thuộc tính tên cho bạn biết tên của tệp

Bạn phải hiểu rằng tệp và đối tượng tệp là hai thứ hoàn toàn riêng biệt – nhưng có liên quan –

Loại tập tin

Những gì bạn có thể biết dưới dạng tệp hơi khác trong Python

Ví dụ, trong Windows, một tệp có thể là bất kỳ mục nào được thao tác, chỉnh sửa hoặc tạo bởi người dùng/HĐH. Điều đó có nghĩa là các tệp có thể là hình ảnh, tài liệu văn bản, tệp thực thi và tệp excel, v.v. Hầu hết các tệp được sắp xếp bằng cách giữ chúng trong các thư mục riêng lẻ

Một tệp trong Python được phân loại là văn bản hoặc nhị phân và sự khác biệt giữa hai loại tệp là rất quan trọng

Các tệp văn bản được cấu trúc dưới dạng một chuỗi các dòng, trong đó mỗi dòng bao gồm một chuỗi ký tự. Đây là những gì bạn gọi là mã hoặc cú pháp

Mỗi dòng được kết thúc bằng một ký tự đặc biệt, được gọi là ký tự EOL hoặc End of Line. Có một số loại, nhưng phổ biến nhất là dấu phẩy {,} hoặc ký tự xuống dòng. Nó kết thúc dòng hiện tại và báo cho trình thông dịch biết một dòng mới đã bắt đầu

Một ký tự dấu gạch chéo ngược cũng có thể được sử dụng và nó cho trình thông dịch biết rằng ký tự tiếp theo - sau dấu gạch chéo - sẽ được coi là một dòng mới. Ký tự này hữu ích khi bạn không muốn bắt đầu một dòng mới trong chính văn bản mà là trong mã

Tệp nhị phân là bất kỳ loại tệp nào không phải là tệp văn bản. Do bản chất của chúng, các tệp nhị phân chỉ có thể được xử lý bởi một ứng dụng biết hoặc hiểu cấu trúc của tệp. Nói cách khác, chúng phải là những ứng dụng có thể đọc và diễn giải mã nhị phân

Đọc tệp bằng Python

Trong Python, các tệp được đọc bằng phương thức open(). Đây là một trong những phương thức tích hợp sẵn của Python, được tạo để mở tệp.  

Hàm open() nhận hai đối số. tên tệp và chế độ mở tệp. Tên tệp trỏ đến đường dẫn của tệp trên máy tính của bạn, trong khi chế độ mở tệp được sử dụng để báo cho hàm open() cách chúng tôi dự định tương tác với tệp

Theo mặc định, chế độ mở tệp được đặt thành chỉ đọc, nghĩa là chúng tôi sẽ chỉ có quyền mở và kiểm tra nội dung của tệp

Trên máy tính của tôi có một thư mục có tên PythonForBeginners. Trong thư mục đó có ba tệp. Một là tệp văn bản có tên emily_dickinson. txt và hai tệp còn lại là tệp python. đọc. py và viết. py

Tệp văn bản chứa bài thơ sau đây của nhà thơ Emily Dickinson. Có lẽ chúng tôi đang làm việc trên một chương trình thơ ca và những bài thơ của chúng tôi được lưu trữ dưới dạng tệp trên máy tính

Thành công được coi là ngọt ngào nhất
Bởi những người chưa bao giờ thành công.
Để hiểu mật hoa
Đòi hỏi nhu cầu cao nhất.

Không phải là một trong số tất cả Chủ nhà màu tím
Ai là người đã giành được Lá cờ hôm nay
Có thể cho biết định nghĩa
Quá rõ ràng

Khi anh ta đánh bại, hấp hối
Trên đôi tai bị cấm của anh ta
Những giai điệu chiến thắng xa xôi
Bùng nổ đau đớn và rõ ràng.

Trước khi chúng tôi có thể làm bất cứ điều gì với nội dung của tệp thơ, chúng tôi cần yêu cầu Python mở nó. tập tin đã đọc. py, chứa tất cả mã python cần thiết để đọc bài thơ

Bất kỳ trình soạn thảo văn bản nào cũng có thể được sử dụng để viết mã. Tôi đang sử dụng trình chỉnh sửa mã Atom, đây là trình chỉnh sửa tôi chọn để làm việc với python

Làm thế nào để bạn đọc một tệp đối tượng trong python?
Ảnh chụp màn hình này hiển thị thiết lập của tôi trong Atom.
# read.py
# loading a file with open()
myfile = open(“emily_dickinson.txt”)

# reading each line of the file and printing to the console
for line in myfile:
	print(line)

Tôi đã sử dụng các nhận xét Python để giải thích từng bước trong mã. Theo liên kết này để tìm hiểu thêm về nhận xét Python là gì

Ví dụ trên minh họa cách sử dụng vòng lặp đơn giản trong Python để đọc nội dung của tệp

Khi nói đến việc đọc tệp, Python sẽ xử lý công việc nặng nhọc đằng sau hậu trường. Chạy tập lệnh bằng cách điều hướng đến tệp bằng Dấu nhắc lệnh — hoặc Terminal  — và nhập 'python', sau đó là tên của tệp

Người dùng Windows. Trước khi bạn có thể sử dụng từ khóa python trong Dấu nhắc lệnh, bạn cần thiết lập các biến môi trường. Điều này lẽ ra phải tự động xảy ra khi bạn cài đặt Python, nhưng trong trường hợp không xảy ra, bạn có thể phải thực hiện thủ công.  

>python read.py

Làm thế nào để bạn đọc một tệp đối tượng trong python?
Chạy tệp Python trong Dấu nhắc lệnh của Windows

Dữ liệu được cung cấp bởi phương thức open() thường được lưu trữ trong một biến mới. Trong ví dụ này, nội dung của bài thơ được lưu trữ trong biến “myfile. ”

Sau khi tệp được tạo, chúng ta có thể sử dụng vòng lặp for để đọc từng dòng trong tệp và in nội dung của nó ra dòng lệnh

Đây là một ví dụ rất đơn giản về cách mở tệp trong Python, nhưng sinh viên nên lưu ý rằng phương thức open() khá mạnh. Đối với một số dự án, nó sẽ là thứ duy nhất cần thiết để đọc và ghi tệp bằng Python

Viết tệp bằng Python

Trước khi chúng ta có thể ghi vào một tệp bằng Python, trước tiên nó phải được mở ở chế độ mở tệp khác. Chúng ta có thể làm điều này bằng cách cung cấp phương thức open() với một đối số đặc biệt

Trong Python, ghi vào tệp bằng phương thức open(). Bạn sẽ cần chuyển cả tên tệp và ký tự đặc biệt cho Python biết chúng tôi dự định ghi vào tệp

Thêm đoạn mã sau để viết. py. Chúng tôi sẽ yêu cầu Python tìm một tệp có tên “sample. txt” và ghi đè nội dung của nó bằng một tin nhắn mới

# open the file in write mode
myfile = open(“sample.txt”,’w’)

myfile.write(“Hello from Python!”)

Truyền 'w' cho phương thức open() yêu cầu Python mở tệp ở chế độ ghi. Trong chế độ này, mọi dữ liệu đã có trong tệp sẽ bị mất khi dữ liệu mới được ghi

Nếu tệp không tồn tại, Python sẽ tạo một tệp mới. Trong trường hợp này, một tệp mới có tên là “sample. txt” sẽ được tạo khi chương trình chạy

Chạy chương trình bằng Command Prompt

>python write.py

Python cũng có thể ghi nhiều dòng vào một tệp. Cách dễ nhất để làm điều này là sử dụng phương thức writelines()

# open the file in write mode
myfile = open(“sample.txt”,’w’)

myfile.writelines(“Hello World!”,”We’re learning Python!”)

# close the file
myfile.close()

Chúng ta cũng có thể ghi nhiều dòng vào một tệp bằng các ký tự đặc biệt

# open the file in write mode
myfile = open("poem.txt", 'w')

line1 = "Roses are red.\n"
line2 = "Violets are blue.\n"
line3 = "Python is great.\n"
line4 = "And so are you.\n"

myfile.write(line1 + line2 + line3 + line4)

Sử dụng nối chuỗi giúp Python có thể lưu dữ liệu văn bản theo nhiều cách khác nhau

Tuy nhiên, nếu chúng tôi muốn tránh ghi đè dữ liệu trong một tệp và thay vào đó nối thêm hoặc thay đổi nó, chúng tôi phải mở tệp bằng chế độ mở tệp khác

Chế độ mở tệp

Theo mặc định, Python sẽ mở tệp ở chế độ chỉ đọc. Nếu chúng tôi muốn làm bất cứ điều gì khác ngoài việc chỉ đọc một tệp, chúng tôi sẽ cần thông báo cho Python theo cách thủ công những gì chúng tôi định làm với nó

  • 'r' - Chế độ đọc. Đây là chế độ mặc định cho open(). Tệp được mở và con trỏ được định vị ở đầu nội dung của tệp
  • 'w' - Chế độ ghi. Sử dụng chế độ này sẽ ghi đè lên bất kỳ nội dung hiện có nào trong một tệp. Nếu tệp đã cho không tồn tại, một tệp mới sẽ được tạo.  
  • 'r+' – Chế độ Đọc/Ghi. Sử dụng chế độ này nếu bạn cần đồng thời đọc và ghi vào một tệp
  • 'a' - Chế độ chắp thêm. Với chế độ này, người dùng có thể nối thêm dữ liệu mà không ghi đè lên bất kỳ dữ liệu nào đã tồn tại trong tệp.  
  • 'a +' - Chế độ đọc và nối thêm. Ở chế độ này, bạn có thể đọc và nối thêm dữ liệu mà không ghi đè lên tệp gốc
  • 'x' - Chế độ tạo độc quyền. Chế độ này dành cho mục đích duy nhất là tạo tệp mới. Sử dụng chế độ này nếu bạn biết trước tệp được ghi không tồn tại

Ghi chú. Những ví dụ này giả sử người dùng đang làm việc với các loại tệp văn bản. Nếu mục đích là đọc hoặc ghi vào loại tệp nhị phân, một đối số bổ sung phải được chuyển cho phương thức open(). ký tự 'b'.  

# binary files need a special argument: ‘b’
binary_file = open(“song_data.mp3”,’rb’)
song_data = binary_file.read()

# close the file
binary_file.close()

Đóng tệp bằng Python

Sau khi mở một tệp bằng Python, điều quan trọng là phải đóng tệp sau khi bạn hoàn thành. Đóng tệp đảm bảo rằng chương trình không thể truy cập nội dung của nó nữa

Đóng tệp bằng phương thức close()

# open a file
myfile = open(“poem.txt”)
# an array to store the contents of the file
lines = []
For line in myfile:
	lines.append(line)
	
# close the file
myfile.close()

For line in liens:
	print(line)

Mở các loại tệp khác

Phương thức open() có thể đọc và ghi nhiều loại tệp khác nhau. Chúng tôi đã xem cách mở tệp nhị phân và tệp văn bản. Python cũng có thể mở hình ảnh, cho phép bạn xem và chỉnh sửa dữ liệu pixel của chúng

Trước khi Python có thể mở tệp hình ảnh, thư viện Gối (Python Imaging Library) phải được cài đặt. Dễ dàng nhất để cài đặt mô-đun này bằng cách sử dụng pip.  

________số 8

Khi cài đặt Gối, Python có thể mở tệp hình ảnh và đọc nội dung của chúng

From PIL import Image

# tell Pillow to open the image file
img = Image.open(“your_image_file.jpg”)
img.show()
img.close()

Thư viện Gối bao gồm các công cụ mạnh mẽ để chỉnh sửa hình ảnh. Điều này đã khiến nó trở thành một trong những thư viện Python phổ biến nhất

với tuyên bố

Bạn cũng có thể làm việc với các đối tượng tệp bằng câu lệnh with. Nó được thiết kế để cung cấp cú pháp rõ ràng hơn và xử lý ngoại lệ khi bạn đang làm việc với mã. Điều đó giải thích tại sao nên sử dụng câu lệnh with khi áp dụng

Một phần thưởng khi sử dụng phương pháp này là mọi tệp được mở sẽ tự động bị đóng sau khi bạn hoàn tất. Điều này khiến ít phải lo lắng hơn trong quá trình dọn dẹp

Để sử dụng câu lệnh with để mở một tệp

>python read.py
0

Bây giờ bạn đã hiểu cách gọi câu lệnh này, hãy xem một vài ví dụ

>python read.py
1

Bạn cũng có thể gọi các phương thức khác trong khi sử dụng câu lệnh này. Chẳng hạn, bạn có thể làm điều gì đó như lặp qua một đối tượng tệp

>python read.py
2

Bạn cũng sẽ nhận thấy rằng trong ví dụ trên, chúng tôi đã không sử dụng “file. close()” vì câu lệnh with sẽ tự động gọi nó cho chúng ta khi thực thi. Nó thực sự làm cho mọi thứ dễ dàng hơn rất nhiều, phải không?

Tách dòng trong tệp văn bản

Ví dụ cuối cùng, hãy cùng khám phá một chức năng độc đáo cho phép bạn tách các dòng được lấy từ một tệp văn bản. Điều này được thiết kế để làm, là phân tách chuỗi chứa trong dữ liệu biến bất cứ khi nào trình thông dịch gặp ký tự khoảng trắng

Nhưng chỉ vì chúng ta sẽ sử dụng nó để tách dòng sau ký tự khoảng trắng, không có nghĩa đó là cách duy nhất. Bạn thực sự có thể tách văn bản của mình bằng bất kỳ ký tự nào bạn muốn – chẳng hạn như dấu hai chấm chẳng hạn

Mã để thực hiện việc này (cũng sử dụng câu lệnh with) là

>python read.py
3

Nếu bạn muốn sử dụng dấu hai chấm thay vì khoảng trắng để phân chia văn bản của mình, bạn chỉ cần thay đổi dòng. split() thành dòng. tách ra(". ”)

Đầu ra cho điều này sẽ là

>python read.py
4

Lý do các từ được trình bày theo cách này là vì chúng được lưu trữ – và trả về – dưới dạng một mảng. Hãy nhớ điều này khi làm việc với hàm split

Sự kết luận

Đọc và ghi tệp trong Python liên quan đến sự hiểu biết về phương thức open(). Bằng cách tận dụng tính linh hoạt của phương pháp này, có thể đọc, viết và tạo tệp bằng Python

Tệp Python có thể là tệp văn bản hoặc tệp nhị phân. Cũng có thể mở và chỉnh sửa dữ liệu hình ảnh bằng mô-đun Gối

Sau khi dữ liệu của một tệp được tải bằng Python, hầu như không có giới hạn cho những gì có thể được thực hiện với nó. Các lập trình viên thường làm việc với một số lượng lớn tệp, sử dụng các chương trình để tạo chúng tự động

Như với bất kỳ bài học nào, chỉ có rất nhiều thứ có thể được bao phủ trong không gian được cung cấp. Hy vọng rằng bạn đã học đủ để bắt đầu đọc và ghi tệp bằng Python

Đọc thêm

Tài liệu Python chính thức – Đọc và ghi tệp

Bảng cheat xử lý tệp Python

Có liên quan

Đào tạo Python được đề xuất

Khóa học. Python 3 cho người mới bắt đầu

Hơn 15 giờ nội dung video với hướng dẫn có hướng dẫn cho người mới bắt đầu. Tìm hiểu cách tạo các ứng dụng trong thế giới thực và nắm vững kiến ​​thức cơ bản

Có đối tượng tệp trong Python không?

Trong python, quyền truy cập vào các tệp được cung cấp thông qua một đối tượng tệp, đối tượng này được tạo bằng cách gọi hàm open dựng sẵn . Khi một đối tượng như vậy được tạo, một số lượng lớn các phương thức có sẵn để truy cập tệp, cả để đọc và ghi. Hàm mở có từ một đến ba đối số.

Tệp giống như đối tượng trong Python là gì?

Đối tượng tệp còn được gọi là đối tượng giống như tệp hoặc luồng . Thực tế có ba loại đối tượng tệp. tệp nhị phân thô, tệp nhị phân được đệm và tệp văn bản. Giao diện của chúng được xác định trong mô-đun io. Cách chính tắc để tạo một đối tượng tệp là sử dụng hàm open().