txt文件內容如下
一一一一一一一一一一一一一一一一
1
2
3
start
11
22
33
44
end
4
5
6
一一一一一一一一一一一一一一一一
我想要讓它print
11
22
33
44
也就是說 需要找到關鍵字start
然後往下的資料都要
找到關鍵字end結束
有人可以教我該怎麼寫嗎 我使用的是python2.7
ps 不要用特定行數 因為中間的資料行數不固定 這只是範本
感謝各位大大
應該有更好的寫法 這邊只是一個土法煉鋼的作法提供您參考
file=open('test1.txt','r')
txt_content=file.read()
lines=txt_content.split('\n')
start_flag=0
for i in lines:
if i == 'end': break
if start_flag == 1:
print i
if i == 'start': start_flag=1
補充一個正則的作法:
import re
file=open('test1.txt','r')
txt_content=file.read()
re_cond=re.compile('start\n(.*?)end', re.DOTALL)
result=re_cond.findall(txt_content)
if len(result)!=0:
for i in result:
print i
我比較喵神一點....用正則表達式拆文字檔
# coding=utf-8
import re
read = ""
with open("test.txt","rt") as txtfile:
read = "".join(txtfile.readlines())
#把文字檔內容全部塞進read變數裡
alltext = re.search(r"start([^(end)]+)",read)
# 把read裡從start到end之間的內容放進alltext裡
if alltext is not None:#如果alltext有東西
lines = alltext.group(1).split("\n")
#把alltext依分行字元拆成list
for l in lines:
print l
python 2.7.4測試可行
lines = None
with open("test.txt","rt") as txtfile:
lines = txtfile.readlines()
result = lines[lines.index("start") + 1:lines.index("end")]
print(result)
不過只能搜尋第一次出現的。