我有一个包含1000行的文件。前15行将是标题信息。
我正在尝试执行以下操作: -
1)读取文件 2)获取带有标题信息的行数。它将返回15 3)将第1-15行写入文本文件。
我能够正确地做1和2,但不能做第3步。有什么输入吗?
以下是我的代码
#!/usr/bin/python
import numpy;
import os;
import math;
import cPickle; import time
from numpy import arange, sign
import copy
import re
import sys
import string
import mmap
head_lines = 0;
count=1
fide = open("text1.txt","r");
while (count==1): #We skip header
head_lines = head_lines+1;
line = fide.readline();
if 'END OF HEADER' in line:
print 'End of the Header reached'
break
print "hello world"
print head_lines
nlines = head_lines;
key=1;
while (key < nlines):
file1 = open("Header.txt","w")
lines = fide.readline()
file1.write(lines)
key = key+1;
print "done"
答案 0 :(得分:1)
with open("input.txt") as f1:
with open("output.txt","w") as f2:
for _ in range(15):
f2.write(f1.readline())
是你要求的吗?
(在python2.7中,我认为你可以做with open('f1') as f1,open('f2','w') as f2: ...
)
答案 1 :(得分:0)
您的代码中存在两个问题:
header.txt
中编写的内容每次循环第二个while
时你都会覆盖它,因为你正在重新打开将文件指针放到其中的文件起源即文件的开头。fide
上。打开它,将文件指针放到文件的开头,然后读取一行直到标题的末尾。在第二个while
循环中,您将继续读取同一文件指针fide
中的行,以便您阅读下一个nlines
。您可以将标题的行存储在列表中,然后在输出文件中写入这些字符串。