Làm cách nào để đăng nhập vào tệp python?

Là thành viên, bạn cũng sẽ có quyền truy cập không giới hạn vào hơn 84.000 bài học về toán, tiếng Anh, khoa học, lịch sử, v.v. Ngoài ra, nhận các bài kiểm tra thực hành, câu đố và huấn luyện được cá nhân hóa để giúp bạn thành công

Nhận quyền truy cập không giới hạn vào hơn 84.000 bài học

Thử ngay bây giờ

Chỉ mất vài phút để thiết lập và bạn có thể hủy bất kỳ lúc nào

Đã đăng ký?

Tài nguyên do giáo viên tạo ra cho giáo viên

Hơn 30.000 bài học video & tài nguyên giảng dạy‐tất cả ở một nơi.

Làm cách nào để đăng nhập vào tệp python?

bài học video

Làm cách nào để đăng nhập vào tệp python?

Câu đố và Bảng tính

Làm cách nào để đăng nhập vào tệp python?

Tích hợp lớp học

Làm cách nào để đăng nhập vào tệp python?

kế hoạch bài học

Tôi chắc chắn sẽ giới thiệu Study. com đến các đồng nghiệp của tôi. Nó giống như một giáo viên vung cây đũa thần và làm việc cho tôi. Tôi cảm thấy như đó là một cứu cánh

Tệp được đặt tên vị trí trên đĩa để lưu trữ thông tin liên quan. Chúng được sử dụng để lưu trữ vĩnh viễn dữ liệu trong bộ nhớ cố định (e. g. ổ đĩa cứng)

Do Bộ nhớ truy cập ngẫu nhiên (RAM) không ổn định (mất dữ liệu khi tắt máy tính), chúng tôi sử dụng các tệp để sử dụng dữ liệu trong tương lai bằng cách lưu trữ chúng vĩnh viễn

Khi chúng ta muốn đọc hoặc ghi vào một tệp, trước tiên chúng ta cần mở nó. Khi chúng tôi hoàn tất, nó cần được đóng lại để các tài nguyên được liên kết với tệp được giải phóng

Do đó, trong Python, thao tác tệp diễn ra theo thứ tự sau

  1. Mở tệp tin
  2. Đọc hoặc viết (thực hiện thao tác)
  3. Đóng tệp

Mở tệp bằng Python

Python có chức năng

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
2 tích hợp để mở tệp. Hàm này trả về một đối tượng tệp, còn được gọi là tay cầm, vì nó được sử dụng để đọc hoặc sửa đổi tệp cho phù hợp

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path

Chúng tôi có thể chỉ định chế độ trong khi mở tệp. Trong chế độ, chúng tôi chỉ định xem chúng tôi muốn đọc

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
3, viết
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
4 hay nối thêm
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
5 vào tệp. Chúng tôi cũng có thể chỉ định nếu chúng tôi muốn mở tệp ở chế độ văn bản hoặc chế độ nhị phân

Mặc định là đọc ở chế độ văn bản. Ở chế độ này, chúng tôi nhận được chuỗi khi đọc từ tệp

Mặt khác, chế độ nhị phân trả về byte và đây là chế độ được sử dụng khi xử lý các tệp không phải văn bản như hình ảnh hoặc tệp thực thi

Chế độ Mô tả

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
3Mở tệp để đọc. (mặc định)
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
4Mở tệp để ghi. Tạo một tệp mới nếu nó không tồn tại hoặc cắt bớt tệp nếu nó tồn tại.
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
8Mở tệp để tạo độc quyền. Nếu tệp đã tồn tại, thao tác không thành công.
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
5Mở tệp để thêm vào cuối tệp mà không cắt bớt tệp. Tạo một tập tin mới nếu nó không tồn tại.
f = open("test.txt", mode='r', encoding='utf-8')
0Mở ở chế độ văn bản. (mặc định)
f = open("test.txt", mode='r', encoding='utf-8')
1Mở ở chế độ nhị phân.
f = open("test.txt", mode='r', encoding='utf-8')
2Mở tệp để cập nhật (đọc và viết)

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode

Không giống như các ngôn ngữ khác, ký tự

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
5 không ám chỉ số 97 cho đến khi nó được mã hóa bằng cách sử dụng
f = open("test.txt", mode='r', encoding='utf-8')
4 (hoặc các mã hóa tương đương khác)

Hơn nữa, mã hóa mặc định phụ thuộc vào nền tảng. Trong windows, nó là

f = open("test.txt", mode='r', encoding='utf-8')
5 nhưng trong Linux là
f = open("test.txt", mode='r', encoding='utf-8')
6

Vì vậy, chúng tôi cũng không được dựa vào mã hóa mặc định, nếu không, mã của chúng tôi sẽ hoạt động khác trong các nền tảng khác nhau

Do đó, khi làm việc với các tệp ở chế độ văn bản, bạn nên chỉ định loại mã hóa

f = open("test.txt", mode='r', encoding='utf-8')

Đóng tệp bằng Python

Khi chúng tôi thực hiện xong các thao tác trên tệp, chúng tôi cần đóng tệp đúng cách

Đóng tệp sẽ giải phóng các tài nguyên được liên kết với tệp. Nó được thực hiện bằng cách sử dụng phương thức

f = open("test.txt", mode='r', encoding='utf-8')
7 có sẵn trong Python

Python có bộ thu gom rác để dọn sạch các đối tượng không được ước tính nhưng chúng ta không được dựa vào nó để đóng tệp

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path
9

Phương pháp này không hoàn toàn an toàn. Nếu một ngoại lệ xảy ra khi chúng tôi đang thực hiện một số thao tác với tệp, mã sẽ thoát mà không đóng tệp

Một cách an toàn hơn là sử dụng try. cuối cùng chặn

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
0

Bằng cách này, chúng tôi đảm bảo rằng tệp được đóng đúng cách ngay cả khi một ngoại lệ được đưa ra khiến dòng chương trình dừng lại

Cách tốt nhất để đóng tệp là sử dụng câu lệnh

f = open("test.txt", mode='r', encoding='utf-8')
8. Điều này đảm bảo rằng tệp được đóng khi khối bên trong câu lệnh
f = open("test.txt", mode='r', encoding='utf-8')
8 được thoát

Chúng ta không cần gọi phương thức

f = open("test.txt", mode='r', encoding='utf-8')
7 một cách rõ ràng. Nó được thực hiện trong nội bộ

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
4

Ghi vào tệp bằng Python

Để ghi vào một tệp bằng Python, chúng ta cần mở tệp đó ở chế độ ghi

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
4, nối thêm
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
5 hoặc chế độ tạo độc quyền
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
8

Chúng ta cần cẩn thận với chế độ

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
4, vì nó sẽ ghi đè lên tệp nếu nó đã tồn tại. Do đó, tất cả dữ liệu trước đó sẽ bị xóa

Viết một chuỗi hoặc chuỗi byte (đối với tệp nhị phân) được thực hiện bằng phương thức

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path
95. Phương thức này trả về số ký tự được ghi vào tệp

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
0

Chương trình này sẽ tạo một tệp mới có tên là

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path
96 trong thư mục hiện tại nếu nó không tồn tại. Nếu nó tồn tại, nó sẽ bị ghi đè

Chúng ta phải bao gồm các ký tự dòng mới để phân biệt các dòng khác nhau


Đọc tệp bằng Python

Để đọc một tệp bằng Python, chúng ta phải mở tệp ở chế độ đọc

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
3

Có nhiều phương pháp có sẵn cho mục đích này. Chúng ta có thể sử dụng phương pháp

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path
98 để đọc kích thước của dữ liệu. Nếu tham số kích thước không được chỉ định, nó sẽ đọc và trả về đến cuối tệp

Chúng ta có thể đọc tệp

>>> f = open("test.txt")    # open file in current directory
>>> f = open("C:/Python38/README.txt")  # specifying full path
99 mà chúng ta đã viết ở phần trên theo cách sau

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
5

Chúng ta có thể thấy rằng phương thức

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
00 trả về một dòng mới là
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
01. Khi đến cuối tệp, chúng tôi nhận được một chuỗi trống khi đọc thêm

Chúng ta có thể thay đổi (vị trí) con trỏ tệp hiện tại bằng cách sử dụng phương pháp

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
02. Tương tự, phương thức
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
03 trả về vị trí hiện tại của chúng ta (tính theo số byte)

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
0

Chúng ta có thể đọc từng dòng một tệp bằng cách sử dụng vòng lặp for. Cái này vừa hiệu quả vừa nhanh

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
1

Trong chương trình này, bản thân các dòng trong tệp bao gồm một ký tự xuống dòng

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
04. Vì vậy, chúng tôi sử dụng tham số kết thúc của hàm
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
05 để tránh hai dòng mới khi in

Ngoài ra, chúng ta có thể sử dụng phương pháp

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
06 để đọc các dòng riêng lẻ của tệp. Phương pháp này đọc một tệp cho đến dòng mới, bao gồm cả ký tự dòng mới

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
0

Cuối cùng, phương thức

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
07 trả về danh sách các dòng còn lại của toàn bộ tệp. Tất cả các phương thức đọc này đều trả về các giá trị trống khi đến cuối tệp (EOF)

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
1

Phương thức tệp Python

Có nhiều phương thức khác nhau có sẵn với đối tượng tệp. Một số trong số chúng đã được sử dụng trong các ví dụ trên

Dưới đây là danh sách đầy đủ các phương thức trong chế độ văn bản với một mô tả ngắn gọn

MethodDescriptionclose()Đóng một tập tin đã mở. Nó không có tác dụng nếu tệp đã được đóng. detach() Tách bộ đệm nhị phân cơ bản khỏi

f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
08 và trả về nó. fileno() Trả về một số nguyên (mô tả tệp) của tệp. flush() Xóa bộ đệm ghi của luồng tệp. isatty()Trả về
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
09 nếu luồng tệp tương tác. read(n)Đọc tối đa n ký tự từ tệp. Đọc đến cuối tệp nếu nó âm hoặc
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
40. readable() Trả về
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
09 nếu luồng tệp có thể được đọc từ. readline(n=-1)Đọc và trả về một dòng từ tệp. Đọc tối đa n byte nếu được chỉ định. readlines(n=-1)Đọc và trả về danh sách các dòng từ tệp. Đọc tối đa n byte/ký tự nếu được chỉ định. seek(offset,from=
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
42)Thay đổi vị trí tệp thành byte bù, liên quan đến from (bắt đầu, hiện tại, kết thúc). seekable() Trả về
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
09 nếu luồng tệp hỗ trợ truy cập ngẫu nhiên. Tell() Trả về một số nguyên đại diện cho vị trí hiện tại của đối tượng tệp. truncate(size=____240)Thay đổi kích thước luồng tệp thành kích thước byte. Nếu kích thước không được chỉ định, hãy thay đổi kích thước thành vị trí hiện tại. writable() Trả về
f = open("test.txt")      # equivalent to 'r' or 'rt'
f = open("test.txt",'w')  # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
09 nếu luồng tệp có thể được ghi vào. write(s)Ghi chuỗi s vào tệp và trả về số ký tự đã ghi. writelines(lines) Ghi danh sách các dòng vào tệp