我是新來的這個論壇,如果我違反了任何論壇規則,請提前編程並道歉。我對此進行了廣泛的研究,但是我找不到解決方案。在Python中使用正則表達式查找和複製一條線
所以我有了這個總體結構很長的文件:
data="""
20.020001 563410 9
20.520001 577410 20
21.022001 591466 9
21.522001 605466 120
23.196001 652338 2
25.278001 710634 7
25.780001 724690 144
26.280001 738690 9
26.782001 752746 40
27.282001 766746 9
27.784001 780802 140
29.372001 825266 2
31.458001 883674 7
31.958002 897674 8
32.458002 911674 9
32.958002 925674 10
"""
我進口使用
with open("C:\blablabla\text.txt", 'r+') as infile:
data = infile.read()
現在我試圖用一個正則表達式查找所有行的文件用140至146結束了,所以我這樣做:
items=re.findall('.......................14[0-6]\n',data,re.MULTILINE)
for x in items:
print x
這個工作,但是當我現在嘗試ŧ O複製那些包含正則表達式的線條,
for x in items:
if items in data:
data.write(items)
我得到以下錯誤:
if items in data:
TypeError: 'in <string>' requires string as left operand, not list
我的理解是什麼問題,但我不知道如何解決它。當我的正則表達式的結果是一個列表時,如何給左操作數提供一個字符串?
任何幫助非常感謝!
對於空格分隔的文本塊的固定格式,它通常是一個很好的解決方案,可以選擇''分割'重新'' - 例如'line.split()'會將一行分割成單獨的數字。然後,您可以簡單地檢查最後一項「line.split()[ - 1]」是否在預期的範圍內。 – l4mpi
你爲什麼要檢查'如果數據中的項目:'?你不是剛剛從數據中提取「物品」嗎? –
也檢查'csv'模塊。它可能會使解析更容易 –