Đọc danh sách từ tệp văn bản python

Xây dựng vấn đề. Hãy xem xét rằng bạn đang cố đọc nội dung của tệp văn bản. Bạn sẽ đọc văn bản từ tệp và lưu trữ nó trong danh sách Python như thế nào?

cảnh 1

Để hiểu rõ hơn về vấn đề này, chúng ta hãy xem một câu hỏi tương tự được hỏi trên StackOverflow

Đọc danh sách từ tệp văn bản python
nguồn. https. // stackoverflow. com/câu hỏi/14676265/how-to-read-a-text-file-into-a-list-or-an-array-with-python

Trước khi đi sâu vào giải pháp, hãy trả lời câu hỏi đầu tiên -

Câu hỏi. “Tại sao toàn bộ nội dung tệp được lưu trữ dưới dạng một mục trong danh sách?”
Câu trả lời. Nói một cách đơn giản, bạn đang đọc toàn bộ nội dung của tệp cùng một lúc và sau đó lưu trữ nó dưới dạng một mục trong danh sách. Python không biết nơi phân chia nội dung và lưu trữ nó dưới dạng một phần tử riêng lẻ trong danh sách. Nói cách khác, nhà phát triển đã không cung cấp cho Python cách xác định cách tách các văn bản riêng lẻ khỏi tệp và sau đó lưu trữ chúng dưới dạng các mục riêng biệt trong danh sách

Với nghi ngờ đầu tiên, chúng ta hãy đi sâu vào câu hỏi quan trọng của nhiệm vụ - "Làm cách nào để lưu trữ nội dung của tệp văn bản dưới dạng các phần tử riêng biệt trong danh sách Python?"

Thảo luận. Nội dung của tệp chứa một dãy ký tự. Khi bạn tách nội dung của tệp, chúng được coi là danh sách giá trị riêng biệt dựa trên dấu phân cách đã chỉ định. Ví dụ: một tệp văn bản có nội dung “0,0,200,0,53,1,0,255” có thể được phân tách trên dấu phân cách “,” và nó sẽ tạo ra danh sách ['0' ,'0' ,'200' , '0', '53', '1', '0', '255']

Bạn có thể tải xuống tệp đang được sử dụng làm ví dụ trong hướng dẫn này tại đây

demoTải về

Cái giếng. Hãy đi sâu vào nhiều cách để đạt được đầu ra mong muốn

Giải pháp. Sử dụng str. tách ra()

Tiếp cận. Đọc toàn bộ nội dung của tệp dưới dạng chuỗi bằng hàm file.read(). Sử dụng hàm str.split(separator) với chuỗi này để trả về danh sách các giá trị chứa từng văn bản của tệp dưới dạng một mục riêng biệt. Dấu phân cách được sử dụng trong trường hợp đã cho là “,”

Mã số

file = open("demo.txt", "r")
contents = file.read()
list_of_contents = contents.split(",")
file.close()
print(list_of_contents)

đầu ra

['0', '0', '200', '0', '53', '1', '0', '255']

💡Tóm tắt nhanh hàm split()
split() là một phương thức tích hợp sẵn trong Python được sử dụng để cắt/tách một chuỗi nhất định dựa trên một dấu tách nhất định. Bạn có thể chỉ định bất kỳ dấu phân cách nào theo yêu cầu của bạn. Tuy nhiên, theo mặc định, dấu phân cách là khoảng trắng

cú pháp

Đọc danh sách từ tệp văn bản python
  • dấu phân cách là một tham số tùy chọn được sử dụng để chỉ định dấu phân cách (dấu phân cách). Theo mặc định, nó là bất kỳ ký tự khoảng trắng nào
  • maxsplit là thông số tùy chọn cho phép chúng tôi chỉ định số lần phân tách tối đa mà chúng tôi muốn thực hiện. Theo mặc định, giá trị của nó là -1 có nghĩa là "tất cả các lần xuất hiện"

Đọc liên quan. Làm thế nào để cắt một chuỗi trong Python?

kịch bản 2. Nội dung riêng biệt từ mỗi dòng của tệp văn bản và lưu trữ dưới dạng danh sách

Trong trường hợp trước, tệp có tất cả nội dung được lưu trữ trong một dòng mã. Nhưng nếu bạn có một tệp không chỉ có nội dung được phân tách bằng dấu phân cách mà còn có nhiều dòng văn bản được phân tách bằng dấu phẩy thì sao?

Thí dụ. Hãy xem xét các tập tin đưa ra dưới đây

Đọc danh sách từ tệp văn bản python

thử nghiệm. txtTải xuống tệp

Sản lượng dự kiến

[‘0’, ‘0’, ‘200’, ‘0’, ’53’, ‘1’, ‘0’, ‘255’, ‘1. 5’, ‘2. 5’, ‘3. 5’, ‘4. 5’, ‘5. 5’, ‘0. 1', '0. 2’, ‘0. 3’, ‘0. 4’, ‘0. 5’]

Giải pháp. Lưu trữ riêng từng dòng trong danh sách và làm phẳng danh sách

Vì, bạn không chỉ phải quan tâm đến dấu phân cách mà còn phải xem xét từng dòng mới;

  • Bước 1. Tách từng dòng và lưu trữ chúng dưới dạng các phần tử riêng lẻ trong danh sách. Tại thời điểm này, bạn sẽ có một danh sách chứa từng dòng được lưu dưới dạng một mục trong danh sách. Theo câu hỏi đã cho, danh sách sẽ giống như thế này. ['0,0,200,0,53,1,0,255', '1.5,2.5,3.5,4.5,5.5', '0.1,0.2,0.3,0.4,0.5']
  • Bước 2. Tạo các danh sách độc lập trong danh sách trên bằng cách tách từng mục trên cơ sở dấu phân cách. Vì vậy, danh sách bây giờ đại diện cho một danh sách các danh sách. ________số 8_______
  • Bước 3. Cuối cùng, làm phẳng danh sách được hình thành ở bước 2. Lưu ý rằng bước 2 và bước 3 có thể được hợp nhất thành một bước duy nhất. Để tìm hiểu cách làm phẳng danh sách các danh sách, bạn có thể tham khảo hướng dẫn này. Làm phẳng một danh sách các danh sách trong Python

Mã số

separated_lines = [line.strip() for line in open('demo.txt')]
flattened_list = [item for i in separated_lines for item in i.split(",")]
print(flattened_list)
# ['0', '0', '200', '0', '53', '1', '0', '255', '1.5', '2.5', '3.5', '4.5', '5.5', '0.1', '0.2', '0.3', '0.4', '0.5']

Tuy nhiên, nếu bạn chỉ muốn lưu trữ toàn bộ một dòng của một tệp nhất định dưới dạng một mục trong danh sách thì bạn có thể tham khảo hướng dẫn toàn diện này. Làm cách nào để đọc tệp theo từng dòng và lưu trữ vào danh sách?

Phần kết luận

Cùng với đó, chúng ta đi đến phần cuối của bài viết này và chúng ta đã trải qua các tình huống khác nhau minh họa cách bạn có thể lưu trữ nội dung của tệp văn bản vào một danh sách trong Python. Vui lòng đăng ký và theo dõi các cuộc thảo luận và hướng dẫn thú vị hơn

Mã hóa vui vẻ. 🙂


Đối với bất kỳ nhà phát triển phần mềm nào, điều quan trọng là phải thành thạo IDE, viết, kiểm tra và gỡ lỗi mã chất lượng cao mà không tốn nhiều công sức. Bạn có muốn thành thạo tất cả những điều này trong Python IDE phổ biến nhất một cách nhanh chóng không?

Khóa học này sẽ đưa bạn từ người mới bắt đầu đến chuyên gia về PyCharm trong ~90 phút

Đọc danh sách từ tệp văn bản python
Hướng dẫn đầy đủ về PyCharm

Tham gia Lớp học nâng cao PyCharm ngay bây giờ và thành thạo PyCharm vào ngày mai

Đọc danh sách từ tệp văn bản python

Shubham Sayon

Tôi là một người tạo nội dung và Blogger Python chuyên nghiệp. Tôi đã xuất bản nhiều bài báo và tạo các khóa học trong một khoảng thời gian. Hiện tại tôi đang làm việc với tư cách là một freelancer toàn thời gian và tôi có kinh nghiệm trong các lĩnh vực như Python, AWS, DevOps và Networking

Làm cách nào để đọc mảng từ tệp văn bản trong Python?

Để nhập tệp Văn bản vào Mảng Numpy, chúng tôi có hai chức năng trong Numpy. .
cục mịch. loadtxt() – Được sử dụng để tải dữ liệu tệp văn bản
cục mịch. genfromtxt() – Được sử dụng để tải dữ liệu từ tệp văn bản, với các giá trị bị thiếu được xử lý như đã xác định

Làm cách nào để chuyển đổi từng từ trong tệp văn bản thành danh sách trong Python?

Một cách khác để chuyển đổi chuỗi thành danh sách là sử dụng phương thức split() Python . Phương thức split() tách một chuỗi thành một danh sách, trong đó mỗi mục danh sách là mỗi từ tạo nên chuỗi. Mỗi từ sẽ là một mục danh sách riêng lẻ.