Đọc tập tin txt python

Python cung cấp các hàm có sẵn để đọc tệp tin vào chương trình. Có hai loại tệp có thể được đọc trong chương trình Python, đó là. file text và file nhị phân

  • file text. Trong loại tệp này, mỗi dòng văn bản được kết thúc bằng một ký tự đặc biệt được gọi là EOL (Cuối dòng), là ký tự dòng mới (‘\ n’) trong Python
  • nhị phân file. Trong loại tệp này, không có dấu kết thúc cho một dòng và dữ liệu được lưu trữ được chuyển đổi thành mã nhị phân

Python cung cấp cho chúng ta hàm read() để sử dụng trong việc đọc dữ liệu có trong một File. Nhưng trước khi sử dụng hàm read() để đọc dữ liệu của File, hãy đảm bảo rằng bạn đã mở File trong chương trình Python bằng cách sử dụng hàm open() trong Python

Ví dụ đơn giản dưới đây, sử dụng hàm open() để mở một tệp văn bản có phần mở rộng. txt và sử dụng hàm read() để đọc dữ liệu trong Tệp

Tệp văn bản này sẽ có tên là laptrinhtudau. txt và đường dẫn là “D. \laptrinhtudau. txt” trong Tệp này sẽ có nội dung như bên dưới

Đọc tập tin txt python

Dưới đây là chương trình, sử dụng hàm open() với mode “r” (chế độ chỉ đọc) sau đó sử dụng hàm read() để đọc dữ liệu có trong File laptrinhtudau. txt

# Mo File voi che do "r"
f = open("D:\laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()

Nếu như Tệp cần đọc được đặt cùng thư mục với tệp Python đang chứa chương trình đang được thực thi, khi đó ta chỉ cần sử dụng đường dẫn laptrinhtudau. txt trong hàm open()

# Mo File voi che do "r"
f = open("laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()

Kết quả

Xin chao, toi la laptrinhtudau. com. 2. Đọc từng dòng của tệp trong Python

Trong một tệp có thể có nhiều hơn 1 dòng dữ liệu. Khi đó, để đọc từng dòng có trong File ta cần sử dụng hàm readline() để thực hiện công việc này

Một ví dụ về cách sử dụng hàm readline() để đọc từng dòng dữ liệu có trong File “D. \yeulaptrinh. txt” bên dưới

Đọc tập tin txt python

 

Chương trình dưới đây, sử dụng hàm readline() để đọc dữ liệu của dòng đầu tiên có trong File on as after

# Doc File voi che do "r"
f = open("D:\yeulaptrinh.txt", "r")

# Doc du lieu dong dau tien trong file va hien thi
print(f.readline())

# Dong File
f.close()

Kết quả

Xin chao

To read two first line has in File on, khi đó ta chỉ cần gọi hai lần hàm readline() như sau

# Doc File voi che do "r"
f = open("D:\yeulaptrinh.txt", "r")

# Doc du lieu dong dau tien va dong thu 2 trong file va hien thi
print(f.readline())
print(f.readline())

# Dong File
f.close()

Kết quả

Xin chào
tôi là Nam

Trong trường hợp bạn cần đọc tất cả các dòng có trong Tệp trên, khi đó ta chỉ cần sử dụng vòng lặp cho và duyệt qua Tệp đó như sau

# Doc File voi che do "r"
f = open("D:\yeulaptrinh.txt", "r")

# Doc tat ca cac dong trong File
for x in f:
    print(x)

# Dong File
f.close()

Kết quả

Xin chào
tôi là Nam
nam nay toi 20 tuoi
toi yeu lap trinh. 3. Đọc ký tự của tệp trong Python

Theo mặc định, hàm read() khi được gọi nó sẽ trả về toàn bộ dữ liệu có trong File, nhưng bạn cũng có thể chỉ số lượng ký tự muốn trả về

Ví dụ ta chỉ cần đọc và hiển thị ra 8 ký tự đầu tiên trong File “D. \laptrinhtudau. txt”, khi đó ta sẽ cần sử dụng hàm read() như sau

# Mo File voi che do "r"
f = open("D:\laptrinhtudau.txt", "r")

# Doc 8 ky tu dau tien trong File va hien thi
print(f.read(8))

# Dong File
f.close()

Kết quả

Xin chao

Khi truyền vào hàm read() một số âm (ví dụ là -1) hoặc truyền vào một số quá lớn, khi đó hàm read() sẽ thực hiện đọc tất cả các ký tự trong File đó

Đọc tệp ghi trong Python hoặc trong bất kỳ ngôn ngữ nào khác là một thao tác thường xuyên được sử dụng trong quá trình làm việc. Bài viết này sẽ hướng dẫn bạn chi tiết cách đọc file trong Python và ghi file trong Python. Ngoài ra, mình cũng sẽ chia sẻ cách đọc cấu trúc từ điển ra file JSON

NỘI DUNG BÀI VIẾT

Đọc tệp ghi trong Python

Quá trình đọc tệp ghi trong Python trải qua 3 bước. Mở tệp, Đọc hoặc ghi tệp và cuối cùng là đóng tệp. Nhưng trước tiên, chúng ta sẽ xem xét các chế độ khi làm việc với tệp trong Python nhé

Chế độ truy cập tệp trong Python

Khá giống với các ngôn ngữ khác, việc đọc tệp ghi trong Python cũng có các chế độ làm việc tương ứng

Chế độGiải thíchChỉ đọc ('r')Chế độ mặc định khi mở tệp. Ở chế độ này, tệp được mở ở chế độ chỉ được phép đọc dữ liệu và con trỏ tệp bắt đầu ở vị trí tệp đầu. Nếu tệp không tồn tại, sẽ xảy ra lỗi FileNotFoundError ngoại lệ. Read & Write (‘r+’)Mở file cho phép cả đọc và ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ xảy ra lỗi FileNotFoundError ngoại lệ. Chỉ ghi (‘w’)Mở tệp và chỉ cho phép ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ tự động tạo tệp mới. Nếu tệp đã tồn tại, dữ liệu cũ sẽ bị ghi đè bằng dữ liệu mới. Write & Read (‘w+’)Mở tệp cho phép cả đọc và ghi. Vị trí con trỏ tệp ở vị trí đầu của tệp. Nếu tệp không tồn tại, sẽ tự động tạo tệp mới. Nếu tệp đã tồn tại, dữ liệu cũ sẽ bị ghi đè bằng dữ liệu mới. Append Only (‘a’)Mở tệp cho phép ghi. Tập tin sẽ được tạo mới nếu không tồn tại. Con trỏ tệp sẽ ở cuối tệp nên sẽ tiếp tục ghi dữ liệu vào cuối nếu dữ liệu ban đầu đã bị cấm. Append and Read (‘a+’)Mở tệp cho phép ghi và đọc. Tập tin sẽ được tạo mới nếu không tồn tại. Con trỏ tệp sẽ ở cuối tệp nên sẽ tiếp tục ghi dữ liệu vào cuối nếu dữ liệu ban đầu đã bị cấm

Mở tệp trong Python

Để mở tệp trong Python, chúng tôi không cần phải nhập thêm bất kỳ thư viện nào, chúng tôi sẽ sử dụng hàm open() tích hợp sẵn có cú pháp như sau

1

file_object = mở(r'đường_dẫn_tới_file', 'mode')

Lưu ý. Ký tự r trước đường dẫn đến tệp giúp bỏ qua các ký tự đặc biệt của chuỗi trong Python. Không có giới hạn, nếu không có ký tự r này thì \t trong đường dẫn D:\text\myfile.txt này sẽ được coi là tab dấu, dẫn đến các sự cố không mong muốn

Ví dụ

1

2

3

4

5

6

7

8

9

10

# open file to read, mode = 'r'

rf = mở('data. txt', 'r')

# hoặc

rf = mở('data. txt')

 

# open file to write

wf = mở('data. txt', 'w')

 

# open file to write to end

wf = mở('data. txt', 'a')

Đóng tệp trong Python

Sử dụng hàm

# Mo File voi che do "r"
f = open("laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()
0 để đóng đối tượng tệp khi bạn đã hoàn thành công việc với nó. Hãy luôn nhớ đóng tệp sau khi hoàn thành công việc nếu không muốn phát sinh các vấn đề không mong muốn

Ví dụ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

# open file to read, mode = 'r'

rf = mở('data. txt', 'r')

# hoặc

rf = mở('data. txt')

# đóng hồ sơ

rf. đóng()

 

# open file to write

wf = mở('data. txt', 'w')

# đóng hồ sơ

wf. đóng()

 

# open file to write to end

wf = mở('data. txt', 'a')

# đóng hồ sơ

wf. đóng()

Một cách linh hoạt hơn (nên sử dụng) khi làm việc với tệp mà không cần phải lo khi đóng tệp nào. Hãy sử dụng từ khóa

# Mo File voi che do "r"
f = open("laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()
1 như sau

1

2

3

4

5

# Python will auto close file for you

với mở('/home/user/data. txt', 'r') as fp:

    # làm smt

 

# tiếp tục các khối lệnh khác

Đọc tệp trong Python

Python cung cấp cho bạn 3 cách khác nhau để đọc nội dung từ tập tin. Mình sẽ đi trực tiếp vào ví dụ để các bạn có thể hiểu & áp dụng được ngay

Đọc toàn bộ tập tin chuỗi

Sử dụng hàm

# Mo File voi che do "r"
f = open("laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()
2 để đọc toàn bộ tệp nội dung vào 1 biến chuỗi

1

2

3

4

5

với mở('dữ liệu. txt') như rf.

    nội dung = rf. đọc()

in(nội dung)

nội dung = nội dung + "\n\nTừ

in(nội dung)

Kết quả nhận được (cũng chính là tệp nội dung

# Mo File voi che do "r"
f = open("laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()
3)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

Cố định size

Can only known size during khai báo

Thay đổi kích thước trong quá trình thêm/ xóa phần tử

Kích thước tối đa phụ thuộc vào bộ nhớ

typedef was used todefine a data type in C

malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new

sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc

Cố định size

Can only known size during khai báo

Thay đổi kích thước trong quá trình thêm/ xóa phần tử

Kích thước tối đa phụ thuộc vào bộ nhớ

typedef was used todefine a data type in C

malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new

sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc

 

Từ LTKK với tình yêu

Đọc từng dòng của tệp

Use function

# Mo File voi che do "r"
f = open("laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()
4 will return 1 lines of file. Chúng ta có thể duyệt qua từng dòng nội dung của tệp như sau

1

2

3

4

5

6

7

với mở('dữ liệu. txt') như rf.

    dòng = rf. đường đọc()

    chỉ mục = 1

    while dòng.

        in('Dòng {}. {}'. định dạng(chỉ mục, dòng))

        chỉ mục += 1

        dòng = rf. đường đọc()

Kết quả

1

2

3

4

5

6

7

8

9

10

11

12

13

Dòng 1. Cố định size

 

Dòng 2. Can only known size during khai báo

 

dòng 3. Thay đổi kích thước trong quá trình thêm/ xóa phần tử

 

dòng 4. Kích thước tối đa phụ thuộc vào bộ nhớ

 

Dòng 5. typedef was used todefine a data type in C

 

Dòng 6. malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new

 

dòng 7. sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc

Hàm

# Mo File voi che do "r"
f = open("laptrinhtudau.txt", "r")

# Doc du lieu co trong File va hien thi
print(f.read())

# Dong File
f.close()
4 sẽ đọc 1 dòng, bao gồm cả ký tự dòng mới (‘\n’). Nên khi ra, mỗi dòng có thể có 1 dòng trống ở phía dưới như kết quả ở trên

Đọc toàn bộ tập tin ra danh sách

Vẫn là đọc toàn bộ tệp nhưng hàm r0 sẽ trả về một danh sách tương ứng với mỗi dòng dữ liệu là 1 phần tử của danh sách

1

2

3

4

với mở('dữ liệu. txt') như rf.

    dòng = rf. đường đọc()

    cho idx, dòng in enumerate(lines):

        in(idx, line)

Kết quả

1

2

3

4

5

6

7

8

9

10

11

12

13

0 Cố định kích thước

 

1 Can just known size during khai báo

 

2 Kích thước thay đổi trong quá trình thêm/ xóa phần tử

 

3 Kích thước tối đa phụ thuộc vào bộ nhớ

 

4 typedef được dùng để định nghĩa một kiểu dữ liệu trong C

 

5 malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new

 

6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc

Lưu ý. Bạn có thể sử dụng hàm r1 để xóa khoảng trắng thừa ở đầu & cuối chuỗi. Và các ký tự dòng mới ở cuối mỗi chuỗi cũng được coi là 1 khoảng trắng thừa

Ghi file trong Python

Để ghi tệp trong Python, chúng ta có thể sử dụng hàm r2 để ghi 1 chuỗi biến, hoặc sử dụng r3 để ghi 1 danh sách chuỗi chuỗi

1

2

3

4

5

6

7

8

9

10

11

12

văn bản = [

    "0 Kích thước cố định",

    "1 Can just known size in when khai báo",

    "2 Kích thước thay đổi trong quá trình bổ sung/ xóa phần tử",

    "3 Kích thước tối đa phụ thuộc vào bộ nhớ",

    "4 typedef được sử dụng để định nghĩa một kiểu dữ liệu trong C. ",

   "5 malloc là hàm cấp phát bộ nhớ của C. Với C++ chúng ta sử dụng new",

    "6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc"

]

với mở('dữ liệu. txt', 'w') as wf:

    đối với văn bản trong văn bản:

        wf. viết(văn bản + ')

hoặc

1

2

3

4

5

6

7

8

9

10

11

văn bản = [

    "0 Kích thước cố định",

    "1 Can just known size in when khai báo",

    "2 Kích thước thay đổi trong quá trình bổ sung/ xóa phần tử",

    "3 Kích thước tối đa phụ thuộc vào bộ nhớ",

    "4 typedef được sử dụng để định nghĩa một kiểu dữ liệu trong C. ",

   "5 malloc là hàm cấp phát bộ nhớ của C. Với C++ chúng ta sử dụng new",

    "6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc"

]

với mở('dữ liệu. txt', 'w') as wf:

    wf. dòng viết(văn bản)

Lưu ý

Hàm r4 không tự động chèn thêm r5 vào cuối mỗi dòng. If if run code on, the lines will write together to 1 lines duy nhất


1

0 Kích thước cố định1 Cần chỉ định kích thước khi khai báo2 Kích thước thay đổi trong quá trình thêm/xóa phần tử3 Kích thước tối đa phụ thuộc vào bộ nhớ4 typedef được sử dụng để định nghĩa một kiểu dữ liệu trong C. 5 malloc là hàm phát bộ nhớ của C. Với C++ chúng ta sử dụng new6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc

Ghi dữ liệu vào cuối tập tin

Chúng ta chỉ cần thay đổi chế độ từ r6 sang r7 là được. Xem ví dụ

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

văn bản = [

    "0 Kích thước cố định",

    "1 Can just known size in when khai báo",

    "2 Kích thước thay đổi trong quá trình bổ sung/ xóa phần tử",

    "3 Kích thước tối đa phụ thuộc vào bộ nhớ",

    "4 typedef được sử dụng để định nghĩa một kiểu dữ liệu trong C. ",

   "5 malloc là hàm cấp phát bộ nhớ của C. Với C++ chúng ta sử dụng new",

    "6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc"

]

với mở('dữ liệu. txt', 'w') as wf:

    đối với văn bản trong văn bản:

        wf. viết(văn bản + ')

 

với mở('dữ liệu. txt') như wr.

    in("Số dòng. ", len(wr. đường đọc()))

 

# Ghi tập tin vào cuối

với mở('dữ liệu. txt', 'a') as wf:

    wf. viết('=> Từ LTKK với tình yêu')

 

với mở('dữ liệu. txt') như wr.

    văn bản = wr. đường đọc()

    in("Số dòng. ", len(văn bản))

    in(văn bản)

Kết quả

1

2

3

Số dòng. 7

Số dòng. số 8

['0 Kích thước cố định\n', '1 Cần chỉ định kích thước khi khai báo\n', '2 Kích thước thay đổi trong quá trình thêm/ xóa phần tử\n', '3 Kích thước tối đa . \n', '5 malloc là hàm cấp phát bộ nhớ của C. Với C++ chúng ta sử dụng new\n', '6 sizeof là hàm trả về kích thước của kiểu dữ liệu, sử dụng tham số cho hàm malloc\n', '=> From LTKK with love']

[sc_]

Đọc ghi JSON từ tệp

Trong phần này, chúng ta sẽ làm việc với tệp JSON sử dụng ngôn ngữ Python. Giả sử chúng ta có tệp JSON như sau

Đọc tập tin txt python
Đọc tập tin txt python

Cách đọc tệp JSON

1

2

3

4

5

6

nhập json

 

với mở('khách hàng. json') as wr.

    khách hàng = json. tải(wr)

    dành cho khách hàng trong khách hàng:

        in(khách hàng, type(customer))

Kết quả

1

2

{'id': 1, 'email': '[email protected]', 'first': 'Torrey', 'last': 'Veum', 'company': 'Hilll, Mayert and Wolf', 'created_at': '2014-12-25T04:06:27.981Z', 'country': 'Switzerland'}

{'id': 2, 'email': '[email protected]', 'first': 'Micah', 'last': 'Sanford', 'company': 'Stokes-Reichel', 'created_at': '2014-07-03T16:08:17.044Z', 'country': "Democratic People's Republic of Korea"}

Ghi từ điển dữ liệu ra tệp JSON

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

nhập json

 

khách hàng = [

    {

        "id". 1,

        "email". "[email được bảo vệ]",

        "đầu tiên". "Torrey",

        "cuối cùng". "Veum",

        "công ty". "Hilll, Mayert và Wolf",

        "created_at". "2014-12-25T04. 06. 27. 981Z",

        "quốc gia". "Thụy Sĩ"

    },

    {

        "id". 2,

        "email". "[email được bảo vệ]",

        "đầu tiên". "Mi-ca",

        "cuối cùng". "Sanford",

        "công ty". "Stokes-Reichel",

        "created_at". "2014-07-03T16. 08. 17. 044Z",

        "quốc gia". "Cộng hòa Dân chủ Nhân dân Triều Tiên"

    }

]

 

với mở('khách hàng. json', 'w') as wr:

    json. kết xuất(khách hàng, wr)

Lưu ý

  • Với dữ liệu tiếng Việt, hàm r8 và r9 sẽ đưa toàn bộ về bảng mã ASCII. Làm như vậy, nếu bạn muốn đọc được tệp JSON khi mở bằng Trình chỉnh sửa, thêm tùy chọn \t0
  • Nếu muốn làm đẹp file JSON thì hãy thêm option \t1 vào hàm r8 nhé. Trong đó, 2 số lượng dấu cách (dấu cách) được sử dụng để định dạng tệp tin

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

nhập json

 

khách hàng = [

    {

        "id". 1,

        "email". "[email được bảo vệ]",

        "đầu tiên". "Hiếu",

        "cuối cùng". "Nguyễn Văn",

        "công ty". "Zalo",

        "created_at". "2014-12-25T04. 06. 27. 981Z",

        "quốc gia". "Việt Nam"

    },

    {

        "id". 2,

        "email". "[email được bảo vệ]",

        "đầu tiên". "Mi-ca",

        "cuối cùng". "Sanford",

        "công ty". "Stokes-Reichel",

        "created_at". "2014-07-03T16. 08. 17. 044Z",

        "quốc gia". "Cộng hòa Dân chủ Nhân dân Triều Tiên"

    }

]

 

với mở('khách hàng. json', 'w') as wr:

    json. kết xuất(khách hàng, wr, ensure_ascii=False, indent=2)

Kết quả

Đọc tập tin txt python
Đọc tập tin txt python

 

Như vậy, bài viết đã trình bày các nội dung cần thiết để bạn đọc về nội dung đọc tệp ghi trong Python. Với những kiến ​​thức căn bản này, bạn hoàn toàn có thể sử dụng câu trả lời yêu cầu trong công việc rồi đấy. Chúc các bạn học tập tốt

Tham gia nhóm Lập Trình Không Khó nhé. https. //www. Facebook. com/groups/1023125804557712/

  • THẺ
  • đọc ghi tập tin
  • key learning python
  • set python program
  • con trăn

Facebook

Twitter

Pinterest

WhatsApp

Nguyễn Văn Hiếu

Sáng lập cộng đồng Lập Trình Không Khó với mong muốn giúp đỡ các bạn trẻ trên con đường trở thành những lập trình viên tương lai. Tất cả những gì tôi viết ra đây chỉ đơn giản là cơ sở thích ghi lại các kiến ​​thức mà tôi tích lũy được