Prerequisites:
- Chế độ truy cập & nbsp;
- Mở tệp & nbsp;
- Đóng một tập tin & nbsp;
Python cung cấp các chức năng sẵn có để tạo, viết và đọc các tệp. Có hai loại tệp có thể được xử lý trong Python, tệp văn bản thông thường và tệp nhị phân [được viết bằng ngôn ngữ nhị phân, 0S và 1S]. Trong bài viết này, chúng tôi sẽ nghiên cứu đọc từng dòng từ một tệp.
Phương pháp 1: Đọc từng dòng tệp bằng cách sử dụng readlines []
Readlines [] được sử dụng để đọc tất cả các dòng trong một lần và sau đó trả về chúng dưới dạng mỗi dòng một phần tử chuỗi trong một danh sách. Hàm này có thể được sử dụng cho các tệp nhỏ, vì nó đọc toàn bộ nội dung tệp vào bộ nhớ, sau đó chia nó thành các dòng riêng biệt. Chúng ta có thể lặp lại danh sách và dải ký tự mới \ n, bằng cách sử dụng hàm Dải [].
Example:
Python3
L
=
[
"Geeks\n"
,
Line1 Geeks Line2 for Line3 Geeks0____9
"Geeks\n"
__13Line1 Geeks Line2 for Line3 Geeks4
=
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Line1 Geeks Line2 for Line3 Geeks8
,
Using for loop Line1: Geeks Line2: for Line3: Geeks0
Using for loop Line1: Geeks Line2: for Line3: Geeks1
Using for loop Line1: Geeks Line2: for Line3: Geeks2
Using for loop Line1: Geeks Line2: for Line3: Geeks3
Line1 Geeks Line2 for Line3 Geeks4
=
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Line1 Geeks Line2 for Line3 Geeks8
,
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']0
Using for loop Line1: Geeks Line2: for Line3: Geeks1
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']2
=
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']4
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
=
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']8
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']9
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks0
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks1
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks4
=
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks7
L
0L
1L
2L
3Output:
Line1: Geeks Line2: for Line3: Geeks
Phương pháp 2: Đọc từng dòng tệp bằng cách sử dụng readline []
hàm readline [] đọc một dòng của tệp và trả lại dưới dạng chuỗi. Nó có một tham số n, trong đó chỉ định số lượng byte tối đa sẽ được đọc. Tuy nhiên, không đọc nhiều hơn một dòng, ngay cả khi N vượt quá độ dài của dòng. Nó sẽ hiệu quả khi đọc một tệp lớn vì thay vì tìm nạp tất cả dữ liệu trong một lần, nó tìm thấy từng dòng. readline [] trả về dòng tiếp theo của tệp có chứa ký tự dòng mới cuối cùng. Ngoài ra, nếu kết thúc của tệp, nó sẽ trả về một chuỗi trống.
Example:
Python3
L
=
[
"Geeks\n"
,
Line1 Geeks Line2 for Line3 Geeks0____9
"Geeks\n"
__13Line1 Geeks Line2 for Line3 Geeks4
=
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Line1 Geeks Line2 for Line3 Geeks8
,
Using for loop Line1: Geeks Line2: for Line3: Geeks0
Using for loop Line1: Geeks Line2: for Line3: Geeks1
[
1
Using for loop Line1: Geeks Line2: for Line3: Geeks3
Line1 Geeks Line2 for Line3 Geeks4
=
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Line1 Geeks Line2 for Line3 Geeks8
,
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']0
Using for loop Line1: Geeks Line2: for Line3: Geeks1
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
=
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']8
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']9
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks0
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks1
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks4
=
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks6
Phương pháp 2: Đọc từng dòng tệp bằng cách sử dụng readline []
hàm readline [] đọc một dòng của tệp và trả lại dưới dạng chuỗi. Nó có một tham số n, trong đó chỉ định số lượng byte tối đa sẽ được đọc. Tuy nhiên, không đọc nhiều hơn một dòng, ngay cả khi N vượt quá độ dài của dòng. Nó sẽ hiệu quả khi đọc một tệp lớn vì thay vì tìm nạp tất cả dữ liệu trong một lần, nó tìm thấy từng dòng. readline [] trả về dòng tiếp theo của tệp có chứa ký tự dòng mới cuối cùng. Ngoài ra, nếu kết thúc của tệp, nó sẽ trả về một chuỗi trống.
Line1 Geeks Line2 for Line3 Geeks00
Line1 Geeks Line2 for Line3 Geeks01
"Geeks\n"
4 "Geeks\n"
5"Geeks\n"
6
Using for loop Line1: Geeks Line2: for Line3: Geeks3
Output:
Line1 Geeks Line2 for Line3 Geeks
Using readlines[]
Line1: Geeks
Line2: for
Line3: Geeks
Using readline[]
Line1: Geeks
Line2: for
Line3: Geeks
Using for loop
Line1: Geeks
Line2: for
Line3: Geeks
2['Geeks\n', 'For\n', 'Geeks']
['Geeks', 'For', 'Geeks']
9=
,
5
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
,
7 ,
8 ,
9Example:
Python3
L
=
[
"Geeks\n"
,
Line1 Geeks Line2 for Line3 Geeks0____9
"Geeks\n"
__13Line1 Geeks Line2 for Line3 Geeks4
=
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Line1 Geeks Line2 for Line3 Geeks8
,
Using for loop Line1: Geeks Line2: for Line3: Geeks0
Using for loop Line1: Geeks Line2: for Line3: Geeks1
Using for loop Line1: Geeks Line2: for Line3: Geeks2
Using for loop Line1: Geeks Line2: for Line3: Geeks3
Line1 Geeks Line2 for Line3 Geeks4
=
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Line1 Geeks Line2 for Line3 Geeks8
,
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']0
Using for loop Line1: Geeks Line2: for Line3: Geeks1
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
=
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']8
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']9
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks0
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks1
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks4
=
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks4
=
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks7
L
0L
1L
2L
3Using for loop Line1: Geeks Line2: for Line3: Geeks3
Output:
Using for loop Line1: Geeks Line2: for Line3: Geeks
Phương pháp 2: Đọc từng dòng tệp bằng cách sử dụng readline []
hàm readline [] đọc một dòng của tệp và trả lại dưới dạng chuỗi. Nó có một tham số n, trong đó chỉ định số lượng byte tối đa sẽ được đọc. Tuy nhiên, không đọc nhiều hơn một dòng, ngay cả khi N vượt quá độ dài của dòng. Nó sẽ hiệu quả khi đọc một tệp lớn vì thay vì tìm nạp tất cả dữ liệu trong một lần, nó tìm thấy từng dòng. readline [] trả về dòng tiếp theo của tệp có chứa ký tự dòng mới cuối cùng. Ngoài ra, nếu kết thúc của tệp, nó sẽ trả về một chuỗi trống.
"Geeks\n"
4 "Geeks\n"
5"Geeks\n"
6
Python3
Line1 Geeks Line2 for Line3 Geeks61
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Line1 Geeks Line2 for Line3 Geeks8
Line1 Geeks Line2 for Line3 Geeks65
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']9
=
,
5Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks75
Line1 Geeks Line2 for Line3 Geeks61
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Line1 Geeks Line2 for Line3 Geeks8
Line1 Geeks Line2 for Line3 Geeks65
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
,
7 ,
8 ,
9Các
Output:
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']
Phương pháp 3: Đọc từng dòng tệp bằng cách sử dụng cho vòng lặp
Một đối tượng có thể được trả về bởi hàm Open [] trong khi mở một tệp. Cách cuối cùng để đọc từng dòng tệp này bao gồm lặp lại trên một đối tượng tệp trong một vòng lặp. Khi làm điều này, chúng tôi đang tận dụng chức năng Python tích hợp cho phép chúng tôi lặp lại đối tượng tệp hoàn toàn bằng cách sử dụng vòng lặp For trong kết hợp với việc sử dụng đối tượng có thể lặp lại. Cách tiếp cận này có ít dòng mã hơn, đây luôn là cách thực hành tốt nhất xứng đáng theo dõi.
Example:
Python3
L
=
[
"Geeks\n"
,
Line1 Geeks Line2 for Line3 Geeks0____9
"Geeks\n"
__13Các
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
Using for loop Line1: Geeks Line2: for Line3: Geeks08
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
=
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks7
Using for loop Line1: Geeks Line2: for Line3: Geeks14
Using for loop Line1: Geeks Line2: for Line3: Geeks1
Line1 Geeks Line2 for Line3 Geeks61
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Using for loop Line1: Geeks Line2: for Line3: Geeks03
Using for loop Line1: Geeks Line2: for Line3: Geeks06
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']2
=
Using for loop Line1: Geeks Line2: for Line3: Geeks24
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']8
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']9
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks0
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks1
Line1 Geeks Line2 for Line3 Geeks00
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks4
=
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks6
Line1 Geeks Line2 for Line3 Geeks00
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks7
L
0L
1L
2L
3['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
=
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks7
Using for loop Line1: Geeks Line2: for Line3: Geeks47
Using for loop Line1: Geeks Line2: for Line3: Geeks1
Line1 Geeks Line2 for Line3 Geeks61
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Using for loop Line1: Geeks Line2: for Line3: Geeks03
Using for loop Line1: Geeks Line2: for Line3: Geeks06
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']2
=
Using for loop Line1: Geeks Line2: for Line3: Geeks24
Line1 Geeks Line2 for Line3 Geeks00
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks4
=
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks6
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
"Geeks\n"
4 "Geeks\n"
5"Geeks\n"
6Line1 Geeks Line2 for Line3 Geeks00
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']9
=
Using for loop Line1: Geeks Line2: for Line3: Geeks66
Using for loop Line1: Geeks Line2: for Line3: Geeks71
Line1 Geeks Line2 for Line3 Geeks01
Line1 Geeks Line2 for Line3 Geeks00
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks7
L
0L
1L
2L
3['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
=
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']7
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks7
Using for loop Line1: Geeks Line2: for Line3: Geeks85
Using for loop Line1: Geeks Line2: for Line3: Geeks1
Line1 Geeks Line2 for Line3 Geeks61
Line1 Geeks Line2 for Line3 Geeks6
Line1 Geeks Line2 for Line3 Geeks7
Using for loop Line1: Geeks Line2: for Line3: Geeks03
Using for loop Line1: Geeks Line2: for Line3: Geeks06
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks2
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']2
=
Using for loop Line1: Geeks Line2: for Line3: Geeks24
Line1 Geeks Line2 for Line3 Geeks00
['Geeks\n', 'For\n', 'Geeks'] ['Geeks', 'For', 'Geeks']5
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks4
=
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks6
Line1 Geeks Line2 for Line3 Geeks00
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks8
Line1 Geeks Line2 for Line3 Geeks7
L
0L
1L
2L
3
Output:
Using readlines[] Line1: Geeks Line2: for Line3: Geeks Using readline[] Line1: Geeks Line2: for Line3: Geeks Using for loop Line1: Geeks Line2: for Line3: Geeks