不斷學習python,對於REGEX很新。我想從一個文本文件中獲取信息,並把它變成一個列表供以後處理:Python REGEX和文件I/O
下面是一個示例Python文件:
import re
text = '''name = file details
version = v1.2
;----------------
; Notes on line one
; Notes on line two
;
; Notes on line four, skipping line 3
;--------------
configuring this device
configuring that device
; I don't want this note'''
def notes(path):
file = re.split('\n+', path)
outputName = outputVer = outputNote = ''
notes = []
outputNotes = []
for line in file:
name = re.search('^name = (.*)$', line)
ver = re.search('^version = (.*)$', line)
note = re.search('; (.*)', line)
if name:
outputName = name.group(1)
if ver:
outputVer = ver.group(1)
notes.append(note)
for note in notes:
print(note)
info = (outputName, outputVer, outputNotes)
print(info[2])
for notes in info[2]:
if notes:
print(notes)
print(info)
notes(text)
我想是抓住了「名」,「版本「和」筆記「
我可以得到沒有問題的名稱和版本,筆記是我遇到的問題。對於筆記,我希望在---------標記之間的所有內容。我不想要稍後在文件中的筆記。
從本質上講,我希望輸出的樣子:
('file details', 'v1.2', ['Notes on line one', 'Notes on line two', '','Notes on line four, skipping line 3'])
而且,我敢肯定有很多方法可以優化此,我很想聽聽建議。
請郵寄文件的內容,併發布你想明確地定義和明確提取什麼。 – SIslam
我在代碼中包含的「文本」變量中包含來自文件的示例內容。 –