将文本文件的特定行写入文本文件 - Python

时间:2015-09-26 21:41:00

标签: python text-files

我是新的Python。我有一个简单的任务,即将文本文件的特定行写入另一个文本文件。文本文件的格式类似于

.A
some text1 -- skip
some text2 -- skip
.B
.some text3 -- write
.some text4 -- write

我需要跳过.A和.B之间的数据。当我遇到.B时,开始将一些text3..etc中的数据写入新文件。

我正在使用Python 2.7

我试过了 -

with open("Myfile.txt","r") as myfile:
     for line in myfile:
        if line.startswith(".A"):  
            writefile = open("writefile.txt", "a")
        else:
            if not (line.startswith(".B")):
                continue
            else:
                writefile.write(line)

我认为在其他方面,我搞砸了事情..

2 个答案:

答案 0 :(得分:0)

一个简单的方法是这样的:

fname = 'D:/File.txt'
content = []
with open(fname) as f:
    content = f.readlines()
wflag= True
f = open('D:/myfile.txt','w')
for line in content:
    if(line=='.A\n'):
        wflag = False
    if(line=='.B\n'):
        wflag= True
        continue
    if(wflag):
        f.write(line) # python will convert \n to os.linesep
f.close()

他们使用一些正则表达式更多的pythonic方法,但正如你所说,你是一个初学者,所以我发布了一个简单的程序员方法。

答案 1 :(得分:0)

问题并不完全清楚,但也许你想要这样的事情,

skip_line = True
writefile = open("writefile.txt", "a")
with open("Myfile.txt","r") as myfile:
     for line in myfile:
        if line.startswith(".A"):
            skip_line = True
        elif line.startswith(".B"):
            skip_line = False
        else:
            pass
        if skip_line:
            continue
        writefile.write(line)