Việc sử dụng hàm file() trong python là gì?

Trong hướng dẫn này, bạn sẽ tìm hiểu các đối tượng tệp. Ngoài ra, chúng ta sẽ xem cách sử dụng các phương thức và thuộc tính của đối tượng tệp để thực hiện các thao tác tệp khác nhau

Show

Loạt. Xử lý tệp Python

Mục lục

Đối tượng tệp là gì?

Đối tượng tệp Python cung cấp các phương thức và thuộc tính để truy cập và thao tác tệp. Sử dụng các đối tượng tệp, chúng ta có thể đọc hoặc ghi bất kỳ tệp nào

Bất cứ khi nào chúng ta mở một tệp để thực hiện bất kỳ thao tác nào trên tệp đó, Python sẽ trả về một đối tượng tệp. Để tạo một đối tượng tệp trong Python, hãy sử dụng các hàm có sẵn, chẳng hạn như

file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
3 và
file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
4

Ngoại lệ IOError xuất hiện khi một đối tượng tệp bị lạm dụng hoặc thao tác tệp không thành công vì lý do liên quan đến I/O. Ví dụ: khi bạn cố gắng ghi vào tệp khi tệp được mở ở chế độ chỉ đọc

Các loại đối tượng tệp

Trong Python, có ba loại đối tượng tệp khác nhau, được liệt kê bên dưới

  1. tệp văn bản
  2. tập tin nhị phân
  3. tập tin thô

Tất cả các đối tượng loại tệp được xác định trong mô-đun io

Tệp văn bản (file = open('test.txt', 'rb', buffering=0) print(type(file)) # Output: 5)

Loại tệp văn bản là phổ biến nhất. Thông thường, chúng tôi sử dụng tệp văn bản để lưu trữ dữ liệu ký tự hoặc lưu trữ thông tin ở dạng văn bản thuần túy không có định dạng đặc biệt ngoài phông chữ và kiểu phông chữ cơ bản

Chúng tôi mở một tệp văn bản bằng hàm

file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
3. Ví dụ,
file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
7. Khi chúng ta mở một tệp văn bản, nó sẽ trả về một đối tượng tệp
file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
5

Thí dụ

file = open('test.txt', 'w')
print(type(file))
# Output:  

Tệp nhị phân (file = open('test.txt', 'rb', buffering=0) print(type(file)) # Output: 9 và with open(r'E:\pynative\files\test.txt', "r") as fp: print('Is Closed:', fp.closed) print('Encoding Used:', fp.encoding) print('Access Mode:', fp.mode) print('NewLines Found:', fp.newlines)0)

Dữ liệu được lưu trữ trên đĩa ở dạng nhị phân. Ví dụ: chúng tôi sử dụng tệp nhị phân để lưu trữ dữ liệu như hình ảnh hoặc video. Các tệp nhị phân là một dạng lưu trữ dữ liệu có thể đọc được trên máy tính

Cần có một chương trình để giải thích dữ liệu trong tệp nhị phân và hiển thị nó cho người dùng. Các tệp nhị phân còn được gọi là tệp đệm. Loại tệp này được sử dụng để đọc và ghi dữ liệu nhị phân

Mở tệp nhị phân bằng hàm open() ở chế độ nhị phân. Ví dụ,

with open(r'E:\pynative\files\test.txt', "r") as fp:
    print('Is Closed:', fp.closed)
    print('Encoding Used:', fp.encoding)
    print('Access Mode:', fp.mode)
    print('NewLines Found:', fp.newlines)
1. Nó mở tệp ở chế độ chỉ đọc ở chế độ nhị phân. Con trỏ tệp tồn tại ở đầu tệp

Hàm

file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
3 sẽ trả về
file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
9 khi chúng ta mở tệp nhị phân để đọc và đối tượng tệp
with open(r'E:\pynative\files\test.txt', "r") as fp:
    print('Is Closed:', fp.closed)
    print('Encoding Used:', fp.encoding)
    print('Access Mode:', fp.mode)
    print('NewLines Found:', fp.newlines)
0 khi chúng ta mở tệp nhị phân để ghi

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  

Tệp thô

Tệp thô là tập hợp dữ liệu chưa được xử lý. Nó có nghĩa là tệp thô không bị máy tính thay đổi hoặc thao tác dưới bất kỳ hình thức nào

Các tệp thô còn được gọi là tệp không có bộ đệm và loại tệp này thường được sử dụng làm khối xây dựng cấp thấp cho các luồng văn bản và nhị phân. Hầu hết, các tập tin thô không được sử dụng

Khi chúng ta mở các tệp này, sử dụng hàm

file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
3 sẽ trả về một đối tượng
with open(r'E:\pynative\files\test.txt', "r") as fp:
    print('Is Closed:', fp.closed)
    print('Encoding Used:', fp.encoding)
    print('Access Mode:', fp.mode)
    print('NewLines Found:', fp.newlines)
6

Thí dụ

file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  

Thuộc tính đối tượng tệp

Đối tượng tệp có các thuộc tính sau mà chúng ta có thể sử dụng để truy cập các chi tiết khác nhau của tệp, chẳng hạn như tên tệp và tệp được mở ở chế độ nào

  • with open(r'E:\pynative\files\test.txt', "r") as fp:
        print('Is Closed:', fp.closed)
        print('Encoding Used:', fp.encoding)
        print('Access Mode:', fp.mode)
        print('NewLines Found:', fp.newlines)
    7. Trả về tên của tập tin. Đây là thuộc tính chỉ đọc và có thể không có trên tất cả các đối tượng giống như tệp. Nếu đối tượng tệp được tạo bằng hàm
    file = open('test.txt', 'rb', buffering=0)
    print(type(file))
    # Output:  
    3, tên của tệp sẽ được trả về. Mặt khác, một số chuỗi cho biết nguồn của đối tượng tệp được trả về
  • with open(r'E:\pynative\files\test.txt', "r") as fp:
        print('Is Closed:', fp.closed)
        print('Encoding Used:', fp.encoding)
        print('Access Mode:', fp.mode)
        print('NewLines Found:', fp.newlines)
    9. Nó trả về mã hóa mà tệp này sử dụng, chẳng hạn như UTF-8. Thuộc tính này là chỉ đọc. Khi các chuỗi Unicode được ghi vào một tệp, chúng sẽ được chuyển đổi thành các chuỗi byte bằng mã hóa này. Nó cũng có thể là Không. Trong trường hợp đó, tệp sử dụng mã hóa mặc định của hệ thống để chuyển đổi chuỗi Unicode
  • file_object.read(size)
    0. Trả về chế độ truy cập tệp được sử dụng khi mở tệp
  • file_object.read(size)
    1. Trả về True nếu tệp bị đóng. Đó là một giá trị boolean cho biết trạng thái hiện tại của đối tượng tệp
  • file_object.read(size)
    2. Các tệp được mở ở chế độ đọc dòng mới phổ quát theo dõi các dòng mới gặp phải khi đọc tệp. Các giá trị là ‘\r’, ‘\n’, ‘\r\n’, Không có (chưa đọc dòng mới nào) hoặc một bộ chứa tất cả các loại dòng mới đã thấy. Đối với các tệp không được mở ở chế độ đọc xuống dòng chung, giá trị của thuộc tính này sẽ là
    file_object.read(size)
    3

Thí dụ

________số 8_______

Phương thức đối tượng tệp

Đối tượng tệp có các phương thức sau mà chúng ta có thể sử dụng để truy cập tệp. Một tệp có thể được mở bằng chức năng tích hợp có tên là

file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
3. Hàm này lấy đường dẫn của tệp và chế độ truy cập và trả về một đối tượng tệp

Đọc thêm

  • Mở tệp bằng Python
  • Tạo một tệp trong Python
Phương thứcMô tả
file_object.read(size)
5Trả về nội dung tệp.
file_object.read(size)
6Trả về xem luồng tệp có thể được đọc hay không.
file_object.read(size)
7Đọc một dòng
file_object.read(size)
8Đọc tệp thành một danh sách
file_object.read(size)
9Thay đổi kích thước tệp thành một kích thước được chỉ định.
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
0Trả về liệu tệp có thể được ghi vào hay không.
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
1Ghi chuỗi đã chỉ định vào tệp.
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
2Ghi danh sách các chuỗi vào tệp.
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
3Đóng tệp đã mở.
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
4Đặt vị trí con trỏ tệp trong tệp
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
5Trả về tệp có cho phép chúng ta thay đổi vị trí tệp hay không.
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
6Trả về vị trí tệp hiện tại.
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
7Trả về luồng thô đã tách từ bộ đệm
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
8Trả về một số đại diện cho luồng, theo quan điểm của hệ điều hành.
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
9Xả bộ đệm bên trong.
My First Line

My Second Line
My Third Line
0Trả về luồng tệp có tương tác hay không. Phương thức đối tượng tệp

Hãy xem từng phương pháp một

file_object.read(size)5 Phương pháp

cú pháp

file_object.read(size)
  • My First Line
    
    My Second Line
    My Third Line
    2 đại diện cho số byte để đọc từ một tệp. Nó trả về nội dung tệp trong một đối tượng chuỗi
  • Nếu
    My First Line
    
    My Second Line
    My Third Line
    2 không được chỉ định, nó sẽ đọc tất cả nội dung từ một tệp
  • Nếu đối số kích thước là âm hoặc không được chỉ định, hãy đọc tất cả dữ liệu cho đến khi đạt đến EOF
  • Một chuỗi rỗng được trả về khi gặp phải EOF ngay lập tức
  • Khi được sử dụng ở chế độ không chặn, có thể trả về ít dữ liệu hơn yêu cầu, ngay cả khi không có tham số kích thước nào được cung cấp

Thí dụ

# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())

đầu ra

My First Line

My Second Line
My Third Line

Đọc thêm

  • Hướng dẫn đầy đủ về cách đọc tệp trong Python
  • Đọc các dòng cụ thể từ một tệp trong Python

file_object.read(size)7 Phương pháp

cú pháp

file_object.readline(size)
  • Đọc một dòng từ một tập tin tại một thời điểm. Nó trả về dòng ở định dạng chuỗi
  • Nếu
    My First Line
    
    My Second Line
    My Third Line
    2 được cung cấp, nó sẽ đọc số byte (bao gồm cả dòng mới ở cuối) từ một tệp
  • Nếu đối số kích thước là âm hoặc không được chỉ định, nó sẽ đọc một dòng
  • Một chuỗi rỗng được trả về khi gặp phải EOF ngay lập tức

Thí dụ

# readline(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read single line
    print(fp.readline())

    # read next line
    print(fp.readline())

đầu ra

My First Line

My Second Line

file_object.read(size)8 Phương pháp

cú pháp

file = open('test.txt', 'rb')
print(type(file))
# Output:  
0
  • Đọc tất cả các dòng từ một tệp và trả lại chúng dưới dạng đối tượng danh sách
  • Nếu có đối số
    My First Line
    
    My Second Line
    My Third Line
    7, thay vì đọc toàn bộ tệp, toàn bộ dòng có tổng xấp xỉ byte gợi ý kích thước (có thể sau khi làm tròn thành kích thước bộ đệm bên trong) được đọc

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  
1

đầu ra

file = open('test.txt', 'rb')
print(type(file))
# Output:  
2

có thể đọc được ()

Nó kiểm tra xem luồng tệp có thể được đọc hay không

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  
3

file_object.read(size)9 Phương pháp

Sử dụng phương thức truncate() để làm trống tệp

  • Nếu có đối số kích thước tùy chọn, tệp sẽ bị cắt bớt (tối đa) kích thước đó. Vì vậy, ví dụ: nếu bạn chỉ định 10 byte, truncate() sẽ xóa 10 byte đầu tiên khỏi tệp
  • Kích thước mặc định cho vị trí hiện tại của con trỏ tệp
  • Vị trí tệp hiện tại không bị thay đổi. Lưu ý rằng nếu một kích thước được chỉ định vượt quá kích thước hiện tại của tệp, kết quả sẽ phụ thuộc vào nền tảng. các khả năng bao gồm tệp có thể không thay đổi, tăng đến kích thước đã chỉ định như thể không được lấp đầy hoặc tăng đến kích thước đã chỉ định với nội dung mới không xác định. khả dụng. Windows, nhiều biến thể Unix

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  
4

# read(size) with open(r'E:\pynative\files\test.txt', 'r') as fp: # read 14 bytes # fp is file object print(fp.read(14)) # read all remaining content print(fp.read())1 Phương pháp

Viết một chuỗi vào tập tin. Nếu bộ đệm được sử dụng, dòng có thể không hiển thị trong tệp cho đến khi phương thức flush() hoặc close() được gọi

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  
5

Đọc thêm. Hướng dẫn đầy đủ về cách ghi vào tệp trong Python

# read(size) with open(r'E:\pynative\files\test.txt', 'r') as fp: # read 14 bytes # fp is file object print(fp.read(14)) # read all remaining content print(fp.read())2 Phương pháp

  • Viết một danh sách các chuỗi vào tập tin. Sử dụng để viết nhiều dòng cùng một lúc vào một tệp. Bạn có thể viết bất kỳ đối tượng lặp nào tạo chuỗi, thường là danh sách chuỗi
  • Ghi chú.
    # read(size)
    with open(r'E:\pynative\files\test.txt', 'r') as fp:
        # read 14 bytes
        # fp is file object
        print(fp.read(14))
    
        # read all remaining content
        print(fp.read())
    2 không thêm dấu phân cách dòng

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  
6

# read(size) with open(r'E:\pynative\files\test.txt', 'r') as fp: # read 14 bytes # fp is file object print(fp.read(14)) # read all remaining content print(fp.read())0 Phương pháp

Nó kiểm tra xem tệp có thể được ghi vào hay không

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  
7

# read(size) with open(r'E:\pynative\files\test.txt', 'r') as fp: # read 14 bytes # fp is file object print(fp.read(14)) # read all remaining content print(fp.read())3 Phương pháp

Đóng tệp đã mở. Một tệp đã đóng không thể đọc hoặc ghi được nữa.

file_object.readline(size)
4 sẽ tăng lên nếu bạn cố đọc hoặc ghi một tệp đã đóng

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  
8

Ghi chú. Bạn nên mở một tệp bằng cách sử dụng câu lệnh

file_object.readline(size)
5. Nó tự động đóng tệp và đảm bảo rằng tất cả các tài nguyên được liên kết với tệp được giải phóng

Phương pháp # read(size) with open(r'E:\pynative\files\test.txt', 'r') as fp: # read 14 bytes # fp is file object print(fp.read(14)) # read all remaining content print(fp.read())4 và # read(size) with open(r'E:\pynative\files\test.txt', 'r') as fp: # read 14 bytes # fp is file object print(fp.read(14)) # read all remaining content print(fp.read())6

Hàm 

# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
4 đặt vị trí của con trỏ tệp và hàm 
# read(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read 14 bytes
    # fp is file object
    print(fp.read(14))

    # read all remaining content
    print(fp.read())
6  trả về vị trí hiện tại của con trỏ tệp

Thí dụ

file = open('test.txt', 'rb')
print(type(file))
# Output:  
9

Đọc thêm. Hướng dẫn đầy đủ Tìm kiếm tệp Python (). Di chuyển vị trí con trỏ tệp

# read(size) with open(r'E:\pynative\files\test.txt', 'r') as fp: # read 14 bytes # fp is file object print(fp.read(14)) # read all remaining content print(fp.read())8 Phương pháp

Trả về bộ mô tả tệp số nguyên được sử dụng bởi hệ thống triển khai bên dưới để yêu cầu các thao tác I/O từ hệ điều hành. Điều này có thể hữu ích cho các giao diện cấp thấp khác sử dụng bộ mô tả tệp, chẳng hạn như

# readline(size)
with open(r'E:\pynative\files\test.txt', 'r') as fp:
    # read single line
    print(fp.readline())

    # read next line
    print(fp.readline())
1

Thí dụ

file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
0

# read(size) with open(r'E:\pynative\files\test.txt', 'r') as fp: # read 14 bytes # fp is file object print(fp.read(14)) # read all remaining content print(fp.read())9 Phương pháp

Như tên cho thấy, nó xóa bộ đệm bên trong. Khi bộ đệm được sử dụng và nếu bạn đang ghi vào một tệp. dòng có thể không hiển thị trong tệp cho đến khi phương thức flush() hoặc close() được gọi

Thí dụ

file = open('test.txt', 'rb', buffering=0)
print(type(file))
# Output:  
1

My First Line My Second Line My Third Line0 Phương pháp

Trả về Đúng nếu tệp được kết nối với thiết bị TTY như máy in từ xa, nếu không thì Sai. Nó cho bạn biết liệu luồng tệp có tương tác hay không

Chức năng của tệp là gì?

Chức năng tệp cho phép tệp thực hiện ghi hoặc đọc từ tệp . Hai chế độ viết được hỗ trợ. ghi đè, trong đó văn bản được ghi vào đầu tệp và mọi nội dung hiện có sẽ bị mất và nối thêm, trong đó văn bản được ghi vào cuối tệp, giữ nguyên nội dung hiện có.

Hàm nào được sử dụng để tạo tệp trong Python?

Trong Python, bạn sử dụng hàm open() với một trong các tùy chọn sau – "x" hoặc "w" – để tạo . "x" – Tạo. lệnh này sẽ tạo một tệp mới khi và chỉ khi không có tệp nào tồn tại với tên đó, nếu không nó sẽ trả về lỗi.