내가 처음 읽는 동안 17 행으로 건너뛰려면 텍스트 파일.
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
good stuff
난 그냥 좋은 얘기입니다. # 39 는 훨씬 더 복잡하지만, 어떤 I& 하고 이게 I& # 39 m, m 문제가 있음.
['아르투짜오시리스'] 사용하여 (https://docs.python.org/3/library/itertools.html # 아르투짜오시리스) 인덱스화할 시작하여 17. It 는 자동으로 17gb/s 건너뛰십시오 첫 선.
import itertools
with open('file.txt') as f:
for line in itertools.islice(f, 17, None): # start=17, stop=None
# process lines
for line in dropwhile(isBadLine, lines):
# process as you see fit
전체 데모:
from itertools import *
def isBadLine(line):
return line=='0'
with open(...) as f:
for line in dropwhile(isBadLine, f):
# process as you see fit
의 장점: 이는 고객이 손쉽게 확장할 경우에 비해 좀 더 복잡한 접두어입니다 선은 " 0"; (단, 상호 의존적인).
이 솔루션은 나를 도와 줄 건너뛰려면 지정한 '선토스테르' 변수. 확보하십시오 인덱스화할 (int) 과 선 (string) 스케쳐내 cerner 추적할 수 없다. 이 경우, 또는 할당할지 선토스테르 선토스테르 대체하십시오 18 세에서 18 개의 변수.
f = open("file.txt", 'r')
for i, line in enumerate(f, linetostart):
#Your code
다음은 두 선 사이의 숫자를 메서드입니다 afaq 흐름선 파일:
import sys
def file_line(name,start=1,end=sys.maxint):
lc=0
with open(s) as f:
for line in f:
lc+=1
if lc>=start and lc<=end:
yield line
s='/usr/share/dict/words'
l1=list(file_line(s,235880))
l2=list(file_line(s,1,10))
print l1
print l2
출력:
['Zyrian\n', 'Zyryan\n', 'zythem\n', 'Zythia\n', 'zythum\n', 'Zyzomys\n', 'Zyzzogeton\n']
['A\n', 'a\n', 'aa\n', 'aal\n', 'aalii\n', 'aam\n', 'Aani\n', 'aardvark\n', 'aardwolf\n', 'Aaron\n']
그냥 악수, n - 1 에서 얻을 수 있는 매개변수입니다 > 선 EOF
다음 (반복자가) '을 (를)' 에 앞서 다음 줄 수 있습니다.
with open("filename.txt") as f:
next(f)
next(f)
next(f)
for line in f:
print(f)
물론 이는 더욱 효과적으로 수행할 수 있다, 그래서 아르투르스 가 두드러 ugly.
from itertools import islice
with open("filename.txt") as f:
# start at line 17 and never stop (None), until the end
for line in islice(f, 17, None):
print(f)
다음은 티마이트 2 위 결과에 대한 답변. 참고로 " file.txt"; 는 임의의 문자열을 포함하는 텍스트 파일 100,000+ 줄 수 있는 파일 크기가 1MB+.
아르투르스 사용하여.
import itertools
from timeit import timeit
timeit("""with open("file.txt", "r") as fo:
for line in itertools.islice(fo, 90000, None):
line.strip()""", number=100)
>>> 1.604976346003241
두 가지 방법으로 for 루프:
from timeit import timeit
timeit("""with open("file.txt", "r") as fo:
for i in range(90000):
next(fo)
for j in fo:
j.strip()""", number=100)
>>> 2.427317383000627
분명한 아르투르스 방식이 더 효율적인 대용량 파일을 다룰 때.