Hướng Dẫn Hướng dẫn read txt file python ✅

Thủ Thuật về Hướng dẫn read txt file python 2022

Họ và tên học viên đang tìm kiếm từ khóa Hướng dẫn read txt file python được Update vào lúc : 2022-09-27 14:18:40 . Với phương châm chia sẻ Mẹo Hướng dẫn trong nội dung bài viết một cách Chi Tiết Mới Nhất. Nếu sau khi Read tài liệu vẫn ko hiểu thì hoàn toàn có thể lại Comments ở cuối bài để Mình lý giải và hướng dẫn lại nha.

Nội dung chính
    Trước khi đọc file trong PythonĐọc toàn bộ file trong python dưới dạng chuỗi bằng phương thức read()Đọc toàn bộ file trong python dưới dạng list bằng phương thức readlines()Nội dung đọc gồm có cả ký tự xuống dòngNội dung đọc không gồm có ký tự xuống dòngĐọc từng dòng file txt trong Python bằng phương thức readline()Đọc từng dòng file txtĐọc từng dòng file txt cho tới cuối fileXoá ký tự xuống dòng trong nội dung đọcTổng kết

Hướng dẫn cách xử lý file trong Python. Bạn sẽ biết phương pháp đọc file trong python bằng mode r trong python, với những phương pháp như đọc toàn bộ file trong python hoặc đọc từng dòng file txt trong Python bằng những phương thức như read(), readlines() trong python sau bài học kinh nghiệm tay nghề này.

Để đọc file txt trong python, tất cả chúng ta có những phương pháp sau:

    Phương thức read(): Đọc toàn bộ tệp dưới dạng một chuỗiPhương thức readlines(): Đọc toàn bộ tệp dưới dạng listPhương thức readline(): Đọc từng dòng file trong python

Trước khi đọc file trong Python

Để đọc file trong python, trước hết tất cả chúng ta cần mở file đó bằng hàm open() hoặc bằng câu lệnh with mà Kiyoshi đã hướng dẫn trong bài Mở và đóng file trong python.

Lưu ý là tùy thuộc vào mục tiêu của việc đọc file mà mode dùng để mở file cũng tiếp tục rất khác nhau, do vậy tất cả chúng ta cần rất là để ý quan tâm khi lựa chọn mode khi mở file.

Ở đây, mode đọc file đó đó là thông tin về những việc cần làm với một file. Các mode hoàn toàn có thể dùng để đọc file trong Python như sau:

ModeXử lýChức năngr Mở để đọc Chỉ được cho phép đọc file
Nếu file không tồn tại thì trả về lỗi r+ Mở để đọc và ghi đè Cho phép cả đọc và ghi đè
Nếu file không tồn tại thì trả về lỗi w+ Mở để đọc và ghi đè Cho phép cả đọc và ghi đè
Nếu file không tồn tại thì tạo file mới a+ Mở để đọc và ghi chèn Cho phép cả đọc và ghi chèn
Nếu file không tồn tại thì tạo file mới

Thông thường khi mở để đọc file, tất cả chúng ta sẽ sử dụng tới mode r trong hàm open() như sau:

f = open('myfile.txt', 'r')

Hoặc là sử dụng hàm open với câu lệnh with như sau:

with open('myfile.txt', 'r') as f:
print(type(f))

Tuy nhiên do mặc định của mode trong hàm open() cũng là mode=r, do đó bạn cũng hoàn toàn có thể lược bỏ chỉ định của r khi đọc file bằng một trong hai cách này như sau:

f = open('myfile.txt')

with open('myfile2.txt') as f:
print(type(f))

Nếu bạn muốn mở file này với mã ký tự khác với mã ký tự mặc định trên máy tính của tớ, hãy chỉ định thêm đối số endcoding như ví dụ sau:

f = open('myfile.txt', 'r', encoding='UTF-8')

Ngoài ra nếu bạn muốn mở file để vừa đọc và vừa ghi nội dung vào file ví dụ điển hình, hãy mở file bằng một số trong những mode khác, ví dụ như thể mode r+, hoặc a+ ví dụ điển hình.

f = open('myfile.txt',"a+")

with open('myfile2.txt',"r+") as f:
print(type(f))

Trong trường hợp bạn chỉ định sai đường dẫn của file cần mở, hoặc là vì file đó không tồn tại, lỗi FileNotFoundError sẽ bị xảy ra:

f = open('./scr/other.txt', 'r')
>> FileNotFoundError: [Errno 2] No such file or directory: './scr/other.txt'

Sau khi mở file thành công thì một object file sẽ được trả về. Chúng ta sẽ sử dụng object file này và thực hiện những thao tác đọc file như dưới đây.

Đọc toàn bộ file trong python dưới dạng chuỗi bằng phương thức read()

Sau khi mở file và thu về object file như trên, tất cả chúng ta hoàn toàn có thể đọc toàn bộ file đó dưới dạng một chuỗi ký tự bằng phương pháp sử dụng phương thức read() với object file đó. Cú pháp sử dụng sẽ là:

f.read(size)

Trong số đó f là object file, và size là đối số xác định số ký tự được đọc ra từ file. Nếu đối số này được lược bỏ, file sẽ được đọc cho tới cuối file (EOF).

Ví dụ tất cả chúng ta có file myfile.txt có nội dung là Hello World. Chúng ta sẽ tiến hành đọc toàn bộ file này dưới dạng một chuỗi ký tự như sau:


f1 = open('myfile.txt', 'r', encoding='UTF-8')


data1 = f1.read()
print(data1)

f1.close()


f2 = open('myfile.txt', 'r', encoding='UTF-8')
data2 = f2.read(1)
print(data2)

f2.close()

Bạn cũng hoàn toàn có thể làm tương tự với câu lệnh with trong Python như sau:

with open('myfile.txt') as f:
data= f.read()
print(data)

Lưu ý là nội dung file chứa trong object file f sẽ bị lấy đi sau mỗi lần sử dụng phương thức read(), do đó nếu bạn muốn sử dụng lại file thì bạn nên phải mở lại file đó như ví dụ trên.

Hãy xem sự khác lạ khi sử dụng cùng một object file trong ví dụ sau đây:

f = open('myfile.txt', 'r', encoding='UTF-8')

data1 = f.read(1)
print(data1)

data2 = f.read()
print(data2)
f.close()

Kết quả:

H
ello World

Bạn hoàn toàn có thể thấy, ở lần đọc đầu tiên đã đọc xong ký tự H từ bên trong object file f, nên tại lần đọc thứ 2 từ f thì kêt quả trả về sẽ không chứa ký tự H.

Lưu ý khi đọc file trong python, nếu mã ký tự được sử dụng trong tệp (ví dụ như mã ascii) khác với mã ký tự được chỉ định trong hàm open(), lỗi UnicodeDecodeError sẽ xảy ra khi tất cả chúng ta đọc file.

f = open('myfile.txt', 'r', encoding='UTF-8')
data = f.read()

Do đó, hãy chỉ định đúng chuẩn mã ký tự dùng để đọc file giống với mã ký tự sử dụng để lưu file đó nhé.

Đọc toàn bộ file trong python dưới dạng list bằng phương thức readlines()

Nội dung đọc gồm có cả ký tự xuống dòng

Sau khi mở file, tất cả chúng ta hoàn toàn có thể đọc toàn bộ file đó dưới dạng một list bằng phương pháp sử dụng phương thức readlines() với cú pháp sau đây:

f.readlines()

Khi đó, toàn bộ file sẽ được đọc, sau đó nội dung từng hàng trong file (gồm có cả ký tự xuống dòng nếu có) sẽ được lấy ra và được thêm vào list như thể một phần tử. Và do đó số phần tử trong list tạo ra cũng chính bằng với số hàng có trong file ban đầu.

Ví dụ tất cả chúng ta có file myfile.txt có nội dung gồm 3 hàng như sau:

Hello World How are you What time is it

Chúng ta sẽ đọc toàn bộ file trên dưới dạng list như sau:

with open('myfile.txt', 'r') as f:
datalist = f.readlines()
print(datalist)

Bạn hoàn toàn có thể thấy một list mới gồm 3 phần tử là có mức giá trị là nội dung của từng hàng (gồm có cả ký tự xuống dòng ) trong file đã được tạo ra.

Sau khi đọc nội dung của toàn bộ file dưới dạng list, tất cả chúng ta hoàn toàn có thể xử lý chúng thông qua những phương thức hoặc hàm xử lý trong list Python. Bạn hoàn toàn có thể tìm thấy những phương pháp xử lý list trong python trong chuyên đề List trong python.

Ví dụ, tất cả chúng ta hoàn toàn có thể in từng dòng trong file ban đầu thông qua việc truy cập vào phần tử trong list như sau:

with open('myfile.txt', 'r') as f:
datalist = f.readlines()
line2 = datalist[1]
print(line2)

Kết quả:

How are you

    Xem thêm: Truy cập và lấy phần tử trong list Python]

Lưu ý là vì ký tự xuống dòng được gồm có trong phần tử của list, nên nếu in chúng ra màn hình hiển thị thì sẽ xuất hiện những dấu xuống dòng in như ví dụ trên.

Nếu bạn muốn in ra màn hình hiển thị mà không biến thành xuống dòng như vậy, hãy tham khảo nội dung bài viết in không xuống dòng trong python

Nội dung đọc không gồm có ký tự xuống dòng

Giống như ở trên, việc ký tự xuống dòng được lấy từ file trong kết quả sẽ hoàn toàn có thể kéo theo nhiều nhầm lẫn khi xử lý. Do đó, phần lớn trong những trường hợp khi đọc file trong python dưới dạng list thì tất cả chúng ta nên phải có thêm xử lý để xoá bỏ ký tự xuống dòng không mong ước này đi.

Và một trong những cách thông dụng nhất, đó đó đó là sử dụng tới phương thức strip() trong python.

    Xem thêm: Xóa ký tự trong chuỗi python (strip)

Ví dụ rõ ràng:

with open('myfile.txt', 'r') as f:
l_strip = [s.strip() for s in f.readlines()]
print(l_strip)

Kết quả

['Hello World', 'How are you', 'What time is it']

Trong dòng code trên, tất cả chúng ta đã sử dụng tới List comprehension trong python để viết code cho gọn. Bạn hoàn toàn có thể tìm hiểu thêm về cách viết này tại nội dung bài viết List comprehension trong python.

Nếu bạn còn kinh ngạc với List comprehension, hãy sử dụng tới cách viết truyền thống sau đây:

with open('myfile.txt', 'r') as f:
datalist = f.readlines ()
l_strip=[]
for s in datalist:
l_strip.append(s.strip())
print(l_strip)

Đọc từng dòng file txt trong Python bằng phương thức readline()

Đọc từng dòng file txt

Nếu bạn không thích đọc toàn bộ file mà muốn đọc từng dòng file trong Python, hãy sử dụng phương thức readline() với cú pháp sau đây:

f.readline()

Phương thức readline() sẽ đọc từng dòng file cho tới vị trí xuống dòng(xuất hiện ký tự xuống dòng n), hoặc là tới cuối file (EOF), nếu file chỉ có một dòng duy nhất hoặc dòng đang đọc là loại ở đầu cuối. Nếu đọc tới cuối file, một ký tự trống ' ' sẽ được trả về.

Cách đọc từng dòng file txt trong python bằng phương thức readline() như ví dụ sau đây. Chúng ta sẽ sử dụng file myfile.txt với nội dung gồm ba hàng như sau:

Hello World How are you What time is it

f = open('myfile.txt', 'r')

data = f.readline()
print (data)


f.close()

Bạn cũng hoàn toàn có thể làm tương tự với lệnh with như sau:

with open('myfile.txt', 'r') as f:
data = f.readline()
print (data)

Trong ví dụ trên, do tất cả chúng ta chạy readline() một lần nên chỉ có thể có dòng đầu tiên của file đã được đọc.

Đọc từng dòng file txt cho tới cuối file

Phương thức readline() chỉ giúp đọc một dòng trong file một lần duy nhất, do đó nếu muốn đọc từng dòng file txt trong python cho tới cuối file, tất cả chúng ta cần tạo ra vòng lặp và đọc lần lượt từng dòng trong file đó bằng readline() như sau:

f = open('myfile.txt', 'r')

while True:
data = f.readline()
if data == '':
break
print (data)
f.close()

Cách viết trên nhờ vào việc nếu readline() đọc tới cuối file thì ký tự trống ' ' sẽ được trả về, do đó chương trình sẽ break và thoát khỏi vòng lặp while tại vị trí ở đầu cuối của file.

Nếu không dùng tới phương thức readline(), bạn cũng hoàn toàn có thể đọc từng dòng file trong python với lệnh For như sau:

with open('myfile.txt', 'r') as f:
for s_line in f:
print(s_line)

Cả hai cách viết đều đưa ra cùng kết quả như sau:

Hello World

How are you

What time is it

Bạn hoàn toàn có thể thấy, in như với phương thức readlines() thì ký tự xuống dòng sẽ gồm có trong kết quả, do đó khi in ra màn hình hiển thị sẽ có hai lần được in xuống dòng như ở kết quả của ví dụ ở trên.

Xoá ký tự xuống dòng trong nội dung đọc

Mặc dù khi đọc từng dòng trong file thì kết quả đọc sẽ gồm có cả ký tự xuống dòng, tuy nhiên tất cả chúng ta cũng hoàn toàn có thể thuận tiện và đơn giản xóa đi ký tự xuống dòng này bằng phương pháp sử dụng kèm phương thức strip() in như ví dụ dưới đây:

with open('myfile.txt', 'r') as f:
for s_line in f:
print(s_line.strip())

Hoặc là

f = open('myfile.txt', 'r')

while True:
data = f.readline()
if data == '':
break
print(data.strip())
f.close()

Cả hai cách viết đều đưa ra cùng kết quả như sau:

Hello World
How are you
What time is it

Tổng kết

Trên đây Kiyoshi đã hướng dẫn bạn về cách đọc file trong python rồi. Để nắm rõ nội dung bài học kinh nghiệm tay nghề hơn, bạn hãy thực hành viết lại những ví dụ của ngày ngày hôm nay nhé.

Và hãy cùng tìm hiểu những kiến thức và kỹ năng về Python trong những nội dung bài viết sau.

Viết bởi Kiyoshi. Đã đăng ký bản quyền tác giả tại <a title="Bạn được tự do chia sẻ nội dung bài viết nhưng phải để lại đường link nội dung bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục tiêu thương mại. Không được phép sửa đổi nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" rel="license noopener" target="_blank" href="https://creativecommons.org/licenses/by-nc-nd/4.0/">Creativecommons</a>&nbsp;và <a title="Bạn được tự do chia sẻ nội dung bài viết nhưng phải để lại đường link nội dung bài viết từ laptrinhcanban.com. Bạn không được sử dụng tài liệu cho mục tiêu thương mại. Không được phép sửa đổi nội dung được phát hành trên website của chúng tôi" style="color:#fff;background-color:silver" target="_blank" rel="noopener" href="https://www.dmca.com/Protection/Status.aspx?ID=1631afcd-7c4a-467d-8016-402c5073e5cd" class="dmca-badge">DMCA</a><script src="https://images.dmca.com/Badges/DMCABadgeHelper.min.js">

Bài viết liên quan

Hãy chia sẻ và cùng phủ rộng kiến thức và kỹ năng lập trình Nhật Bản tại Việt Nam!

HOME>> >>

Profile
きよしです!笑

Tác giả : Kiyoshi (Chis Thanh)

Kiyoshi là một cựu du học viên tại Nhật Bản. Sau khi tốt nghiệp đại học Toyama năm 2022, Kiyoshi hiện giờ đang làm BrSE tại Tokyo, Nhật Bản.

Post a Comment

Previous Post Next Post

Discuss

×Close