Cộng đồng chia sẻ tri thức Lib24.vn

Python - Tệp I / O

Gửi bởi: Phạm Thọ Thái Dương 19 tháng 2 2020 lúc 16:23:22


Mục lục
* * * * *

Chương này bao gồm tất cả các hàm I / O cơ bản có sẵn trong Python. Để biết thêm các chức năng, vui lòng tham khảo tài liệu Python tiêu chuẩn.

In ra màn hình

Cách đơn giản nhất để tạo đầu ra là sử dụng câu lệnh in trong đó bạn có thể chuyển 0 hoặc nhiều biểu thức được phân tách bằng dấu phẩy. Hàm này chuyển đổi các biểu thức bạn truyền thành một chuỗi và ghi kết quả vào đầu ra tiêu chuẩn như sau -

#!/usr/bin/python

print "Python is really a great language,", "isn't it?"

Điều này tạo ra kết quả sau trên màn hình tiêu chuẩn của bạn -

Python is really a great language, isn't it?

Đọc bàn phím nhập

Python cung cấp hai hàm dựng sẵn để đọc một dòng văn bản từ đầu vào tiêu chuẩn, theo mặc định xuất phát từ bàn phím. Các chức năng này là -

  1. raw_input
  2. đầu vào

Các raw_input Chức năng

Hàm raw_input ([prompt]) đọc một dòng từ đầu vào tiêu chuẩn và trả về nó dưới dạng một chuỗi (loại bỏ dòng mới).

#!/usr/bin/python

str = raw_input("Enter your input: ")
print "Received input is : ", str

Điều này nhắc bạn nhập bất kỳ chuỗi nào và nó sẽ hiển thị cùng một chuỗi trên màn hình. Khi tôi gõ "Xin chào Python!", Đầu ra của nó là như thế này -

Enter your input: Hello Python
Received input is :  Hello Python

Các đầu vào Chức năng

Hàm đầu vào ([prompt]) tương đương với raw_input, ngoại trừ việc nó giả sử đầu vào là biểu thức Python hợp lệ và trả về kết quả được đánh giá cho bạn.

#!/usr/bin/python

str = input("Enter your input: ")
print "Received input is : ", str

Điều này sẽ tạo ra kết quả sau so với đầu vào đã nhập -

Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is :  [10, 20, 30, 40]

Mở và đóng tệp

Cho đến bây giờ, bạn đã đọc và ghi vào đầu vào và đầu ra tiêu chuẩn. Bây giờ, chúng ta sẽ xem làm thế nào để sử dụng các tệp dữ liệu thực tế.

Python cung cấp các hàm và phương thức cơ bản cần thiết để thao tác các tệp theo mặc định. Bạn có thể thực hiện hầu hết các thao tác tệp bằng cách sử dụng một đối tượng tệp .

Các mở Chức năng

Trước khi bạn có thể đọc hoặc ghi một tệp, bạn phải mở nó bằng hàm open () tích hợp sẵn của Python . Hàm này tạo một đối tượng tệp , sẽ được sử dụng để gọi các phương thức hỗ trợ khác được liên kết với nó.

Cú pháp

file object = open(file_name [, access_mode][, buffering])

Dưới đây là chi tiết tham số -

  1. file_name - Đối số file_name là một giá trị chuỗi chứa tên của tệp mà bạn muốn truy cập.
  2. access_mode - access_mode xác định chế độ mà tệp phải được mở, tức là đọc, ghi, nối, v.v. Một danh sách đầy đủ các giá trị có thể được đưa ra dưới đây trong bảng. Đây là tham số tùy chọn và chế độ truy cập tệp mặc định được đọc (r).
  3. bộ đệm - Nếu giá trị bộ đệm được đặt thành 0, không có bộ đệm nào diễn ra. Nếu giá trị bộ đệm là 1, bộ đệm dòng được thực hiện trong khi truy cập tệp. Nếu bạn chỉ định giá trị đệm là số nguyên lớn hơn 1, thì hành động đệm được thực hiện với kích thước bộ đệm được chỉ định. Nếu âm, kích thước bộ đệm là mặc định của hệ thống (hành vi mặc định).

Dưới đây là danh sách các chế độ mở tệp khác nhau -

Các thuộc tính đối tượng tập tin

Khi một tệp được mở và bạn có một đối tượng tệp , bạn có thể nhận được nhiều thông tin khác nhau liên quan đến tệp đó.

Dưới đây là danh sách tất cả các thuộc tính liên quan đến đối tượng tệp -

Thí dụ

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
print "Closed or not : ", fo.closed
print "Opening mode : ", fo.mode
print "Softspace flag : ", fo.softspace

Điều này tạo ra kết quả sau -

Name of the file:  foo.txt
Closed or not :  False
Opening mode :  wb
Softspace flag :  0

Các close () Phương pháp

Phương thức close () của một đối tượng tệp sẽ xóa mọi thông tin không được ghi lại và đóng đối tượng tệp, sau đó không thể viết thêm nữa.

Python tự động đóng một tệp khi đối tượng tham chiếu của tệp được gán lại cho tệp khác. Đó là một cách thực hành tốt để sử dụng phương thức close () để đóng tệp.

Cú pháp

fileObject.close()

Thí dụ

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name

# Close opend file
fo.close()

Điều này tạo ra kết quả sau -

Name of the file:  foo.txt

Đọc và viết tập tin

Các tập tin đối tượng cung cấp một tập các phương pháp truy cập vào làm cho cuộc sống của chúng tôi dễ dàng hơn. Chúng ta sẽ thấy cách sử dụng các phương thức read () và write () để đọc và ghi tệp.

Các write () Phương pháp

Phương thức write () ghi bất kỳ chuỗi nào vào một tệp đang mở. Điều quan trọng cần lưu ý là các chuỗi Python có thể có dữ liệu nhị phân chứ không chỉ văn bản.

Phương thức write () không thêm ký tự dòng mới ('\ n') vào cuối chuỗi -

Cú pháp

fileObject.write(string)

Ở đây, thông số được truyền là nội dung được ghi vào tệp đã mở.

Thí dụ

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.\nYeah its great!!\n")

# Close opend file
fo.close()

Phương pháp trên sẽ tạo tệp foo.txt và sẽ ghi nội dung đã cho vào tệp đó và cuối cùng nó sẽ đóng tệp đó. Nếu bạn mở tập tin này, nó sẽ có nội dung như sau.

Python is a great language.
Yeah its great!!

Các read () Phương pháp

Phương thức read () đọc một chuỗi từ một tệp đang mở. Điều quan trọng cần lưu ý là chuỗi Python có thể có dữ liệu nhị phân. ngoài dữ liệu văn bản.

Cú pháp

fileObject.read([count])

Ở đây, tham số đã truyền là số byte được đọc từ tệp đã mở. Phương pháp này bắt đầu đọc từ đầu tệp và nếu thiếu số lượng , thì nó sẽ cố gắng đọc càng nhiều càng tốt, có thể cho đến khi kết thúc tệp.

Thí dụ

Hãy lấy một tệp foo.txt mà chúng ta đã tạo ở trên.

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
# Close opend file
fo.close()

Điều này tạo ra kết quả sau -

Read String is :  Python is

Vị trí tệp

Các tell () phương pháp cho bạn biết vị trí hiện tại trong tập tin; nói cách khác, lần đọc hoặc ghi tiếp theo sẽ xảy ra ở nhiều byte từ đầu tệp.

Phương thức tìm kiếm (offset [, từ]) thay đổi vị trí tệp hiện tại. Đối số offset cho biết số lượng byte sẽ được di chuyển. Đối số from chỉ định vị trí tham chiếu từ nơi các byte sẽ được di chuyển.

Nếu từ được đặt thành 0, có nghĩa là sử dụng phần đầu của tệp làm vị trí tham chiếu và 1 có nghĩa là sử dụng vị trí hiện tại làm vị trí tham chiếu và nếu được đặt thành 2 thì phần cuối của tệp sẽ được lấy làm vị trí tham chiếu .

Thí dụ

Hãy để chúng tôi lấy một tệp foo.txt , mà chúng tôi đã tạo ở trên.

#!/usr/bin/python

# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print "Read String is : ", str

# Check current position
position = fo.tell()
print "Current file position : ", position

# Reposition pointer at the beginning once again
position = fo.seek(0, 0);
str = fo.read(10)
print "Again read String is : ", str
# Close opend file
fo.close()

Điều này tạo ra kết quả sau -

Read String is :  Python is
Current file position :  10
Again read String is :  Python is

Đổi tên và xóa tập tin

Mô-đun os Python cung cấp các phương thức giúp bạn thực hiện các hoạt động xử lý tệp, chẳng hạn như đổi tên và xóa tệp.

Để sử dụng mô-đun này, bạn cần nhập nó trước và sau đó bạn có thể gọi bất kỳ chức năng liên quan.

Phương thức đổi tên ()

Phương thức rename () nhận hai đối số, tên tệp hiện tại và tên tệp mới.

Cú pháp

os.rename(current_file_name, new_file_name)

Thí dụ

Dưới đây là ví dụ để đổi tên tệp hiện có test1.txt -

#!/usr/bin/python
import os

# Rename a file from test1.txt to test2.txt
os.rename( "test1.txt", "test2.txt" )

Các remove () Phương pháp

Bạn có thể sử dụng phương thức remove () để xóa các tệp bằng cách cung cấp tên của tệp sẽ bị xóa làm đối số.

Cú pháp

os.remove(file_name)

Thí dụ

Sau đây là ví dụ để xóa tệp test2.txt hiện có -

#!/usr/bin/python
import os

# Delete file test2.txt
os.remove("text2.txt")

Thư mục trong Python

Tất cả các tệp được chứa trong các thư mục khác nhau và Python cũng không gặp vấn đề gì khi xử lý chúng. Các os module có một số phương pháp mà giúp bạn tạo, loại bỏ, và thư mục thay đổi.

Các mkdir () Phương pháp

Bạn có thể sử dụng phương thức mkdir () của mô-đun os để tạo các thư mục trong thư mục hiện tại. Bạn cần cung cấp một đối số cho phương thức này chứa tên của thư mục sẽ được tạo.

Cú pháp

os.mkdir("newdir")

Thí dụ

Sau đây là ví dụ để tạo một bài kiểm tra thư mục trong thư mục hiện tại -

#!/usr/bin/python
import os

# Create a directory "test"
os.mkdir("test")

Các chdir () Phương pháp

Bạn có thể sử dụng phương thức chdir () để thay đổi thư mục hiện tại. Phương thức chdir () lấy một đối số, là tên của thư mục mà bạn muốn tạo thư mục hiện tại.

Cú pháp

os.chdir("newdir")

Thí dụ

Sau đây là ví dụ để vào thư mục "/ home / newdir" -

#!/usr/bin/python
import os

# Changing a directory to "/home/newdir"
os.chdir("/home/newdir")

Các getcwd () Phương pháp

Phương thức getcwd () hiển thị thư mục làm việc hiện tại.

Cú pháp

os.getcwd()

Thí dụ

Sau đây là ví dụ để đưa ra thư mục hiện tại -

#!/usr/bin/python
import os

# This would give location of the current directory
os.getcwd()

Các rmdir () Phương pháp

Phương thức rmdir () xóa thư mục, được truyền dưới dạng đối số trong phương thức.

Trước khi xóa một thư mục, tất cả các nội dung trong đó nên được loại bỏ.

Cú pháp

os.rmdir('dirname')

Thí dụ

Sau đây là ví dụ để loại bỏ thư mục "/ tmp / test". Cần phải cung cấp tên đầy đủ của thư mục, nếu không nó sẽ tìm kiếm thư mục đó trong thư mục hiện tại.

#!/usr/bin/python
import os

# This would  remove "/tmp/test"  directory.
os.rmdir( "/tmp/test"  )

Được cập nhật: 24 tháng 4 lúc 13:21:25 | Lượt xem: 545