簡體   English   中英

從包含多行的文件中提取值

[英]Extracting a value from a file containing multiple lines

我正在嘗試搜索包含'<text> 291 km</text>'行的字符串,並僅返回291的值。 當我運行下面的代碼時,出現錯誤-

print m.group(1) 
   AttributeError: 'NoneType' object has no attribute 'group'

Python初學者在這里!

   f = open("sample.txt","r+") 
   text = f.read()
   m = re.search('<text> (.+?)km</text>', text)
   print m.group(1)

我認為可能是因為這些詞之間存在空格。 我建議您使用\\s*來匹配零個或多個空格。

>>> s = 'foo <text> 291 km</text> bar'
>>> re.search(r'<text>\s*(\d+)\s*km\s*</text>', s).group(1)
'291'

如果那是文件中實際的單獨一行,並且始終以<text>開頭,則可以使用str.startswith和split:

with open("tsample.txt") as f:
    for line in f:
       if line.startswith( '<text>' ):
            print(line.split()[1])
291

無論哪種方式,您都應使用with來打開文件並逐行讀取。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM