因業務需求,需要提取文字中帶有檢查字樣的每一行。
樣本如下:
1投入10kvb、c母分段820閉鎖備自投壓板我們要用的包:re(python 強大的正則包),codecs(專門用作編碼轉換)2退出10kvb、c母分段820備投跳803壓板
3退出10kvb、c母分段820備投合820壓板
4檢查2、3號主變壓器分頭位置一致
5合上820斷路器
6檢查820斷路器確帶負荷
7檢查2號、3號主變壓器負荷分配正常
8拉開802斷路器
9檢查802斷路器在分閘位置
10 檢查3號主變壓器不過負荷
思路:一種思路是直接用正則找出檢查,按照樣本可以這樣寫:\d\s檢查,屬於一勞永逸的寫法。還有一種就是下面比較裸的寫法,先用python的readlines()方法讀取文字的每一行,再用 u'檢查'判斷帶有『檢查』的每一行,這種方法比較麻煩的地方就是還需要去掉樣本中的序號,def func()就是用來解決這個問題的。至於為什麼我要用第二種,我也不知道。 :)
**如下:
importre結果:importcodecs
f= codecs.open('f:/parseword/tmp/f1040ez.content.txt','r','utf-8')
s =f.readlines()
f.flush()
f.close()
for fileline ins:
if u'檢查' infileline:
line_pattern =r'\s*\d+\s?(.*)'
deffunc(text):
c =re.compile(line_pattern)
lists =
lines = text.split('\n')
for line inlines:
r =c.findall(line)
ifr:
return '\n'.join(lists)
result =func(fileline)
printresult
>>> ******************************== restart ******************************==>>>檢查2、3號主變壓器分頭位置一致
檢查820斷路器確帶負荷
檢查2號、3號主變壓器負荷分配正常
檢查802斷路器在分閘位置
檢查3號主變壓器不過負荷
>>>
test =''''''
print test
python讀取指定位元組長度的文字
軟體版本 python 2.7.13 win 10 場景描述 1 使用python讀取指定長度的文字 2 使用python讀取某一範圍內的文字。python test.txt文字內包含的字串為 aaaaaaaabbbbbbbbccccccccdddddddd a,b,c,d均為8個 coding u...
python讀取指定位元組長度的文字
軟體版本 python 2.7.13 win 10 場景描述 1 使用python讀取指定長度的文字 2 使用python讀取某一範圍內的文字。python test.txt文字內包含的字串為 aaaaaaaabbbbbbbbccccccccdddddddd a,b,c,d均為8個 coding u...
python讀取指定位元組長度的文字
軟體版本 python 2.7.13 win 10 場景描述 1 使用python讀取指定長度的文字 2 使用python讀取某一範圍內的文字。python test.txt文字內包含的字串為 aaaaaaaabbbbbbbbccccccccdddddddd a,b,c,d均為8個 coding u...