2015-09-26 160 views
-3

我是新的Python。我有一個簡單的任務,將特定的文本文件行寫入另一個文本文件。文本文件的格式是這樣將文本文件的特定行寫入文本文件 - 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) 

我想在別的塊我搞砸了的東西..

+0

您有什麼問題? – saulspatz

+0

請分享你到目前爲止所嘗試過的 – csharpcoder

回答

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方法,但正如你所說你是初學者,所以我發佈了一個簡單的程序員方法。

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) 
相關問題