我是新的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 :(得分: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)