Python讀取文字,輸出指定中文(字串)

2022-05-11 05:33:43 字數 1418 閱讀 3863

因業務需求,需要提取文字中帶有檢查字樣的每一行。

樣本如下:

1投入10kvb、c母分段820閉鎖備自投壓板   

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號主變壓器不過負荷

我們要用的包:re(python 強大的正則包),codecs(專門用作編碼轉換)

思路:一種思路是直接用正則找出檢查,按照樣本可以這樣寫:\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...