※ 引述《girl5566 (5566520)》之铭言:
: f = open('123.txt','r')
: lines = f.readlines()
: print len(lines) #2000000 lines
: startindex = 30
: endindex = 15000
: outputfile = open('456.txt','w')
: for i in range(startindex,endindex):
: outputfile.write(lines[i])
: outputfile.close()
: 想询问除了这样写以外 有无更快的写法
: 可以直接把string list写到档案内的写法
如果你有仔细看文件, 应该会发现里面有个 writelines method...
https://docs.python.org/2/library/stdtypes.html#file.writelines
startindex = 30
endindex = 15000
with open('456.txt', 'w') as f:
f.writelines(lines[startindex:endindex])
另外如果你确定 input 会是一个档案的话, 也可以直接把两边接起来
with open('123.txt') as fi, open('456.txt', 'w') as fo:
for _ in xrange(startindex): # 跳过 startindex 行
fi.next()
for _ in xrange(endindex - startindex):
fo.write(fi.readline())
我不确定后面的方法会不会比较快, 但至少比较省内存(不用整个档读进来)