Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

202

Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
Learn more.

Chúng tôi có một tệp dữ liệu thô lớn mà chúng tôi muốn cắt theo kích thước được chỉ định.

Làm thế nào tôi có thể nhận được các dòng N đầu tiên của một tệp văn bản trong Python? HĐH sẽ được sử dụng có ảnh hưởng gì đến việc thực hiện không?

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

Đã hỏi ngày 20 tháng 11 năm 2009 lúc 0:09Nov 20, 2009 at 0:09

1

Python 3:

with open("datafile") as myfile:
    head = [next(myfile) for x in range(N)]
print(head)

Python 2:

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head

Đây là một cách khác (cả Python 2 & 3):

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)

Đã trả lời ngày 20 tháng 11 năm 2009 lúc 0:27Nov 20, 2009 at 0:27

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

John La Rooyjohn La RooyJohn La Rooy

Phù bằng vàng 287K5151 gold badges359 silver badges500 bronze badges

16

N = 10
with open("file.txt", "a") as file:  # the a opens it in append mode
    for i in range(N):
        line = next(file).strip()
        print(line)

AMC

2.5847 Huy hiệu vàng12 Huy hiệu bạc34 Huy hiệu đồng7 gold badges12 silver badges34 bronze badges

Đã trả lời ngày 20 tháng 11 năm 2009 lúc 2:04Nov 20, 2009 at 2:04

ghostdog74ghostdog74ghostdog74

Phù bằng vàng 315K5555 gold badges253 silver badges341 bronze badges

4

Nếu bạn muốn đọc các dòng đầu tiên một cách nhanh chóng và bạn không quan tâm đến hiệu suất, bạn có thể sử dụng

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
4 trả về đối tượng danh sách và sau đó cắt danh sách.

Ví dụ. Đối với 5 dòng đầu tiên:

with open("pathofmyfileandfileandname") as myfile:
    firstNlines=myfile.readlines()[0:5] #put here the interval you want

Lưu ý: Toàn bộ tệp được đọc, vì vậy không phải là tốt nhất từ ​​quan điểm hiệu suất nhưng nó rất dễ sử dụng, nhanh chóng để viết và dễ nhớ vì vậy nếu bạn muốn thực hiện một số tính toán một lần là rất thuận tiện the whole file is read so is not the best from the performance point of view but it is easy to use, fast to write and easy to remember so if you want just perform some one-time calculation is very convenient

print firstNlines

Một lợi thế so với các câu trả lời khác là khả năng chọn dễ dàng phạm vi của các dòng, ví dụ: Bỏ qua 10 dòng đầu tiên

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
5 hoặc 10
from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
6 kéo dài hoặc chỉ lấy các dòng chẵn
from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
7.

Đã trả lời ngày 7 tháng 12 năm 2013 lúc 12:59Dec 7, 2013 at 12:59

G mg mG M

Phim huy hiệu vàng 18,9k1010 gold badges77 silver badges80 bronze badges

7

Những gì tôi làm là gọi các dòng N bằng

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
8. Tôi nghĩ rằng hiệu suất không phải là tốt nhất, nhưng ví dụ nếu
from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
9:

import pandas as pd
yourfile = pd.read_csv('path/to/your/file.csv',nrows=1000)

AMC

2.5847 Huy hiệu vàng12 Huy hiệu bạc34 Huy hiệu đồng7 gold badges12 silver badges34 bronze badges

Đã trả lời ngày 20 tháng 11 năm 2009 lúc 2:04Apr 11, 2017 at 14:54

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

Phù bằng vàng 315K55RRuiz

Nếu bạn muốn đọc các dòng đầu tiên một cách nhanh chóng và bạn không quan tâm đến hiệu suất, bạn có thể sử dụng

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
4 trả về đối tượng danh sách và sau đó cắt danh sách.19 silver badges26 bronze badges

4

Ví dụ. Đối với 5 dòng đầu tiên:

Lưu ý: Toàn bộ tệp được đọc, vì vậy không phải là tốt nhất từ ​​quan điểm hiệu suất nhưng nó rất dễ sử dụng, nhanh chóng để viết và dễ nhớ vì vậy nếu bạn muốn thực hiện một số tính toán một lần là rất thuận tiện

lines =[]
with open(file_name) as f:
    lines.extend(f.readline() for i in xrange(N))

u0b34a0f6ae

Một lợi thế so với các câu trả lời khác là khả năng chọn dễ dàng phạm vi của các dòng, ví dụ: Bỏ qua 10 dòng đầu tiên

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
5 hoặc 10
from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
6 kéo dài hoặc chỉ lấy các dòng chẵn
from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
7.14 gold badges89 silver badges100 bronze badges

Đã trả lời ngày 20 tháng 11 năm 2009 lúc 0:27Nov 20, 2009 at 0:27

John La Rooyjohn La Rooyartdanil

Phù bằng vàng 287K512 gold badges31 silver badges48 bronze badges

1

AMC

  1. 2.5847 Huy hiệu vàng12 Huy hiệu bạc34 Huy hiệu đồng

  2. Đã trả lời ngày 20 tháng 11 năm 2009 lúc 2:04

Phù bằng vàng 315K55

# Method 1:
with open("fileName", "r") as f:
    counter = 0
    for line in f:
        print line
        counter += 1
        if counter == N: break

# Method 2:
with open("fileName", "r") as f:
    for i in xrange(N):
        line = f.next()
        print line

Nếu bạn muốn đọc các dòng đầu tiên một cách nhanh chóng và bạn không quan tâm đến hiệu suất, bạn có thể sử dụng

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
4 trả về đối tượng danh sách và sau đó cắt danh sách.

Ví dụ. Đối với 5 dòng đầu tiên:Mar 2, 2018 at 23:42

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

Lưu ý: Toàn bộ tệp được đọc, vì vậy không phải là tốt nhất từ ​​quan điểm hiệu suất nhưng nó rất dễ sử dụng, nhanh chóng để viết và dễ nhớ vì vậy nếu bạn muốn thực hiện một số tính toán một lần là rất thuận tiệnFatihAkici

Một lợi thế so với các câu trả lời khác là khả năng chọn dễ dàng phạm vi của các dòng, ví dụ: Bỏ qua 10 dòng đầu tiên

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
5 hoặc 10
from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
6 kéo dài hoặc chỉ lấy các dòng chẵn
from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
7.1 gold badge28 silver badges47 bronze badges

1

Đã trả lời ngày 7 tháng 12 năm 2013 lúc 12:59

class File(file):
    def head(self, lines_2find=1):
        self.seek(0)                            #Rewind file
        return [self.next() for x in xrange(lines_2find)]

    def tail(self, lines_2find=1):  
        self.seek(0, 2)                         #go to end of file
        bytes_in_file = self.tell()             
        lines_found, total_bytes_scanned = 0, 0
        while (lines_2find+1 > lines_found and
               bytes_in_file > total_bytes_scanned): 
            byte_block = min(1024, bytes_in_file-total_bytes_scanned)
            self.seek(-(byte_block+total_bytes_scanned), 2)
            total_bytes_scanned += byte_block
            lines_found += self.read(1024).count('\n')
        self.seek(-total_bytes_scanned, 2)
        line_list = list(self.readlines())
        return line_list[-lines_2find:]

Usage:

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
0

G mg mJan 20, 2011 at 19:42

Phim huy hiệu vàng 18,9k10fdb

Những gì tôi làm là gọi các dòng N bằng

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
8. Tôi nghĩ rằng hiệu suất không phải là tốt nhất, nhưng ví dụ nếu
from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
9:1 gold badge19 silver badges20 bronze badges

Đã trả lời ngày 11 tháng 4 năm 2017 lúc 14:54

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
1

Rruizrruiz

2.06919 Huy hiệu bạc26 Huy hiệu đồng

Không có phương pháp cụ thể để đọc số dòng được hiển thị bởi đối tượng tệp.Dec 7, 2011 at 8:26

1

Tôi đoán cách dễ nhất sẽ theo sau:

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
2

46.4K14 Huy hiệu vàng89 Huy hiệu bạc100 Huy hiệu đồngOct 28, 2016 at 2:36

ArtdanilartdanilSurya

4.6922 Huy hiệu vàng31 Huy hiệu bạc48 Huy hiệu đồng4 gold badges56 silver badges37 bronze badges

Hai cách thực hiện trực quan nhất sẽ là:

Lặp lại trên từng dòng tệp và
N = 10
with open("file.txt", "a") as file:  # the a opens it in append mode
    for i in range(N):
        line = next(file).strip()
        print(line)
0 sau các dòng
N = 10
with open("file.txt", "a") as file:  # the a opens it in append mode
    for i in range(N):
        line = next(file).strip()
        print(line)
1.

Lặp lại trên từng dòng tệp bằng phương pháp

N = 10
with open("file.txt", "a") as file:  # the a opens it in append mode
    for i in range(N):
        line = next(file).strip()
        print(line)
2
N = 10
with open("file.txt", "a") as file:  # the a opens it in append mode
    for i in range(N):
        line = next(file).strip()
        print(line)
1 lần. (Đây về cơ bản chỉ là một cú pháp khác cho những gì câu trả lời hàng đầu làm.)Nov 20, 2009 at 2:00

Đây là mã:John Machin

Điểm mấu chốt là, miễn là bạn không sử dụng

N = 10
with open("file.txt", "a") as file:  # the a opens it in append mode
    for i in range(N):
        line = next(file).strip()
        print(line)
4 hoặc
N = 10
with open("file.txt", "a") as file:  # the a opens it in append mode
    for i in range(N):
        line = next(file).strip()
        print(line)
5ing toàn bộ tệp vào bộ nhớ, bạn có rất nhiều tùy chọn.11 gold badges138 silver badges184 bronze badges

0

Đã trả lời ngày 2 tháng 3 năm 2018 lúc 23:42

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
4

FatihakicifatihakiciNov 25, 2014 at 5:00

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

1

4.3611 Huy hiệu vàng28 Huy hiệu bạc47 Huy hiệu đồng

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
5

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

Dựa trên câu trả lời được bỏ phiếu hàng đầu của Gnibbler (ngày 20 tháng 11 '09 lúc 0:27): Phương thức thêm lớp này () và đuôi () để tệp đối tượng.

Đã trả lời ngày 20 tháng 1 năm 2011 lúc 19:427 gold badges33 silver badges31 bronze badges

FDBFDBAug 23, 2019 at 19:18

1

1.9681 Huy hiệu vàng19 Huy hiệu bạc20 Huy hiệu Đồng

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
6

cách của riêng tôi:

Giải pháp dựa trên danh sách Hiểu danh sách Hàm Open () hỗ trợ giao diện lặp. Việc liệt kê () bao gồm Open () và trả về các bộ dữ liệu (chỉ mục, mục), sau đó chúng tôi kiểm tra xem chúng tôi có bên trong một phạm vi được chấp nhận không (nếu tôi

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
7

Thưởng thức Python. ;)

Đã trả lời ngày 7 tháng 12 năm 2011 lúc 8:26Jul 8, 2021 at 22:07

2

Đối với 5 dòng đầu tiên, chỉ cần làm:

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
8

Đã trả lời ngày 28 tháng 10 năm 2016 lúc 2:36

Đã trả lời ngày 6 tháng 12 năm 2012 lúc 18:02Dec 6, 2012 at 18:02

3

Điều này hoạt động cho Python 2 & 3:

with open("datafile") as myfile:
    head = [next(myfile) for x in xrange(N)]
print head
9

Đã trả lời ngày 11 tháng 11 năm 2019 lúc 23:09Nov 11, 2019 at 23:09

Sandypsandypsandyp

4125 Huy hiệu bạc14 Huy hiệu Đồng5 silver badges14 bronze badges

1

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
0

Đã trả lời ngày 23 tháng 4 năm 2020 lúc 14:44Apr 23, 2020 at 14:44

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

Đây là một giải pháp tốt khác với sự hiểu biết danh sách:

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
1

Đã trả lời ngày 20 tháng 11 năm 2021 lúc 14:50Nov 20, 2021 at 14:50

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

1

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
2

Phương pháp này đã làm việc cho tôi

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

Eric Aya

69.1K35 Huy hiệu vàng176 Huy hiệu bạc247 Huy hiệu đồng35 gold badges176 silver badges247 bronze badges

Đã trả lời ngày 12 tháng 7 năm 2017 lúc 16:25Jul 12, 2017 at 16:25

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

2

Chỉ cần chuyển đổi đối tượng tệp CSV của bạn thành danh sách bằng danh sách (File_Data)list(file_data)

from itertools import islice

with open("datafile") as myfile:
    head = list(islice(myfile, N))
print(head)
3

Đã trả lời ngày 4 tháng 10 năm 2021 lúc 13:23Oct 4, 2021 at 13:23

Hướng dẫn how do i read the first n line of a file in python? - làm cách nào để đọc n dòng đầu tiên của tệp trong python?

1

Làm cách nào để đọc một vài dòng đầu tiên của một tệp trong Python?

Nếu bạn muốn đọc các dòng đầu tiên một cách nhanh chóng và bạn không quan tâm đến hiệu suất bạn có thể sử dụng .ReadLines () trả về đối tượng danh sách và sau đó cắt danh sách.use . readlines() which returns list object and then slice the list.

Làm thế nào để bạn đọc dòng thứ n của một tệp trong Python?

Sử dụng readlines () để đọc phạm vi dòng từ tệp, phương thức readlines () đọc tất cả các dòng từ một tệp và lưu trữ nó trong danh sách.Bạn có thể sử dụng một số chỉ mục làm số dòng để trích xuất một tập hợp các dòng từ nó.Đây là cách đơn giản nhất để đọc một dòng cụ thể từ một tệp trong Python. The readlines() method reads all lines from a file and stores it in a list. You can use an index number as a line number to extract a set of lines from it. This is the most straightforward way to read a specific line from a file in Python.

Làm cách nào để đọc hàng đầu tiên của tệp văn bản trong Python?

Để đọc dòng đầu tiên của một tệp trong Python, hãy sử dụng hàm File.Readline ().Dòng Read () là một hàm tích hợp trả về một dòng từ tệp.Mở một tệp bằng cách sử dụng mở (tên tệp, chế độ) dưới dạng tệp có chế độ R R R R R và Chức năng ReadLine () trên đối tượng tệp đó để lấy dòng đầu tiên của tệp.use the file. readline() function. The readline() is a built-in function that returns one line from the file. Open a file using open(filename, mode) as a file with mode “r” and call readline() function on that file object to get the first line of the file.

Làm thế nào để bạn đọc 10 dòng đầu tiên của một tệp trong Python?

Sử dụng tệp ...
a_file = open ("file_name.txt") Mở "file_name.txt".
number_of_lines = 3 ..
Đối với i trong phạm vi (number_of_lines): in số đầu tiên_of_lines của a_file ..
dòng = a_file.ĐỌC LINE ().
print(line).