Đọc từng dòng tệp và in số từ của từng dòng trong Python
Đôi khi chúng tôi muốn kiểm tra xem một tệp nhất định lớn hay nhỏ như thế nào. Tổng số dòng của một tệp nhất định giúp chúng tôi biết tệp đó lớn như thế nào. Linux, giống như bất kỳ hệ điều hành nào khác, cung cấp cho chúng tôi một số cách để đạt được nhiệm vụ này Show
Trong hướng dẫn này, chúng ta sẽ xem xét các cách phổ biến nhất để đếm số dòng của một tệp được chỉ định bằng Bash 2. Cài đặtĐối với hướng dẫn nhanh này, chúng tôi sẽ sử dụng tệp văn bản có tên là lập trình. txt có chứa một số ngôn ngữ lập trình hàng đầu được sử dụng ngày nay
Nếu chúng tôi đếm số dòng theo cách thủ công, chúng tôi sẽ nhận được 10. Đếm thủ công sẽ trở nên mệt mỏi và khó đạt được khi số lượng dòng tăng lên. Tuy nhiên, có thể dễ dàng đạt được tổng số dòng bằng cách sử dụng các lệnh đầu cuối khác nhau 3. nhà vệ sinhLệnh wc được sử dụng để tìm số dòng, ký tự, từ và byte của tệp Để tìm số dòng bằng wc, chúng tôi thêm tùy chọn -l. Điều này sẽ cung cấp cho chúng tôi tổng số dòng và tên của tệp Hãy kiểm tra số dòng của tệp của chúng tôi bằng lệnh wc -l
Từ đầu ra, chúng ta có thể thấy rằng nó được in số 10, cho biết tổng số dòng và tên của tệp, lập trình. txt Chúng ta có thể yêu cầu shell chuyển hướng chương trình. txt thành đầu vào tiêu chuẩn của lệnh wc -l. Điều này sẽ cung cấp cho chúng tôi số dòng không có tên tệp
Một cách phổ biến khác để thực hiện việc này với wc là sử dụng cat và chuyển tệp sang lệnh
4. sedsed là trình chỉnh sửa luồng được sử dụng để thực hiện chuyển đổi văn bản cơ bản của tệp đầu vào. Lệnh này chủ yếu được sử dụng cho chức năng tìm và thay thế. Chúng tôi cũng có thể sử dụng nó để tìm số dòng của một tệp được chỉ định sed có thể nhận các đối số khác nhau để in số dòng 4. 1. sed -n ‘=’Chúng ta có thể sử dụng kết hợp sed, tùy chọn -n và dấu bằng (‘=’). Lệnh sẽ in số dòng mà không có nội dung của tệp
Từ kết quả, chúng ta có thể thấy rằng lệnh chỉ in số dòng. Tuy nhiên, cách tiếp cận này không hiệu quả đối với các tệp lớn 4. 2. sed -n ‘$=’Hầu hết thời gian, chúng tôi chỉ muốn lấy tổng số dòng. sed hữu ích bằng cách sử dụng tùy chọn -n và đối số ‘$=’. Đầu ra của lệnh là số dòng cuối cùng của tệp
5. awkLệnh awk coi mỗi dòng là một bản ghi. Sau đó, số lượng dòng có thể được in trong phần KẾT THÚC bằng cách sử dụng biến NR tích hợp của awk
6. con mèoLệnh cat nối các tệp được truyền cho nó dưới dạng đối số và in trên đầu ra tiêu chuẩn. Đây là một trong những lệnh được sử dụng nhiều nhất. Sử dụng lệnh cat với tùy chọn -n in nội dung tệp với số dòng của chúng
Chúng ta có thể thấy rằng lệnh đã in cả số dòng và nội dung. Lưu ý rằng phương pháp này không thực tế khi xử lý các tệp lớn 7. Phần kết luậnTrong bài viết ngắn này, chúng ta đã học được một số cách đếm số dòng trong một tệp bằng Bash Một số lệnh in nội dung của tệp trở nên không hiệu quả và không thực tế khi làm việc với các tệp lớn Lệnh wc -l được sử dụng nhiều nhất và cũng là cách dễ nhất để tìm số dòng của một tệp nhất định tác giả dưới cùng Nếu bạn có một vài năm kinh nghiệm trong hệ sinh thái Linux và bạn muốn chia sẻ trải nghiệm đó với cộng đồng, hãy xem Nguyên tắc đóng góp của chúng tôi Khi bạn gọi phương thức 3 trên một đối tượng tệp, Python sẽ đọc toàn bộ tệp vào bộ nhớ cùng một lúc. Nhưng đó có thể là một ý tưởng tồi nếu bạn đang làm việc với một tệp thực sự lớnCó một cách phổ biến khác để xử lý tệp trong Python. bạn có thể lặp qua một đối tượng tệp để đọc từng dòng một ________số 8 Ở đây, chúng tôi đang in ra một số (đếm lên) trong mỗi dòng trong tệp của chúng tôi
Lưu ý rằng khi chúng tôi in, Python không chỉ in ra dòng mà còn thêm một dòng trống ở giữa mỗi dòng trong tệp của chúng tôi. Theo mặc định, hàm 0 của Python in một ký tự dòng mới ( 1) sau bất kỳ ký tự nào khác mà nó in (xem đối số 3 của hàm 0). Nhưng mỗi dòng của chúng tôi cũng kết thúc bằng một ký tự xuống dòng, bởi vì các ký tự xuống dòng là những dòng riêng biệt trong một tệp 4Loại bỏ ký tự xuống dòng khi đọc từng dòngVì vậy, chúng ta cần loại bỏ ký tự xuống dòng mà hàm 0 in ra hoặc chúng ta cần xóa các ký tự xuống dòng khỏi mỗi dòng trong tệp của mình khi chúng ta in chúng ra 6Chúng tôi đang sử dụng phương pháp chuỗi 5 ở đây để "tước" các ký tự dòng mới từ phía bên trái (phần đầu) của mỗi chuỗi 6 của chúng tôi ngay trước khi in mỗi dòngCác đối tượng tệp là các lần lặp lười biếngCác đối tượng tệp trong Python là các lần lặp lười biếng, có nghĩa là chúng ta có thể xử lý chúng theo cách tương tự như bất kỳ lần lặp nào khác Vì vậy, thay vì đếm ngược theo cách thủ công, chúng ta có thể chuyển đối tượng tệp của mình sang hàm 7 tích hợp. Hàm 7 sau đó có thể thực hiện việc đếm cho chúng ta khi chúng ta lặp 1Chúng tôi đã xóa hai dòng mã nhưng chúng tôi nhận được đầu ra giống như trước đây 2Lặp lại các tệp để đọc từng dòng mộtCác tệp là các lần lặp lười biếng và khi chúng tôi lặp qua một đối tượng tệp, chúng tôi sẽ nhận được các dòng từ tệp đó Khi Python đọc từng dòng một tệp, nó không lưu trữ toàn bộ tệp trong bộ nhớ cùng một lúc. Thay vào đó, nó lưu trữ một bộ đệm nhỏ gồm các dòng sắp tới trong tệp đó, vì vậy nó tiết kiệm bộ nhớ hơn Điều đó có nghĩa là việc lặp qua các tệp theo từng dòng đặc biệt quan trọng nếu bạn đang làm việc với các tệp thực sự lớn Làm cách nào để đếm số từ trong mỗi dòng của tệp trong Python?Người dùng phải nhập tên tệp Tệp được mở bằng hàm open() ở chế độ đọc Một vòng lặp for được sử dụng để đọc qua từng dòng trong tệp Mỗi dòng được chia thành một danh sách các từ sử dụng split() Số lượng từ trong mỗi dòng được đếm bằng cách sử dụng len() và biến đếm được tăng lên Làm cách nào để đếm số dòng từ và ký tự trong tệp văn bản bằng Python?Đếm số dòng, từ và chữ cái trong tệp văn bản . Bộ đếm các dòng được tăng thêm 1 Chuỗi được chia thành các từ bằng cách sử dụng phương pháp tách. Hàm len đếm số từ trong danh sách từ. . Để bỏ qua ký tự xuống dòng ( '\n' ), chúng tôi xóa ký tự đó bằng phương thức dải |