如何使用python提取行中的特定数据?
我有一个文件包含如下行:如何使用python提取行中的特定数据?,python,python-2.7,Python,Python 2.7,我有一个文件包含如下行: 754.82915: MODE1(0, 0x001900, 0x00090) 754.82916: MODE2(0, 0x001900, 0x00090) 如何在python中从“(“to”)获取数据 我试过密码: fo=open("file1.txt","r") fin=open("file2.txt","w") lines=fo.readlines() for line in lines: result=re.search(r'\(.*\)', line)
754.82915: MODE1(0, 0x001900, 0x00090)
754.82916: MODE2(0, 0x001900, 0x00090)
如何在python中从“(“to”)获取数据
我试过密码:
fo=open("file1.txt","r")
fin=open("file2.txt","w")
lines=fo.readlines()
for line in lines:
result=re.search(r'\(.*\)', line)
res="\n"+result.group()
fin.write(res)
fo.close()
它显示以下错误:
AttributeError: 'NoneType' object has no attribute 'group'
您应该考虑使用<代码> < <代码> >语句和<代码> FUNDALL()/<代码>函数>代码> Re>代码>模块,如:
import re
with open('file1.txt', 'r') as fin:
with open('file2.txt', 'w') as fout:
fout.write('\n'.join(re.findall(r'\(.*\)', fin.read())))
按照您的原始代码,只需添加一行即可检查
result
是否为None
with open("file1.txt","r") as fin:
lines = fin.readlines()
with open("file2.txt","w") as fout:
for line in lines:
result = re.search(r'\(.*\)', line)
if result: # check if not None
res = "\n" + result.group()
fout.write(res)
您还应该学习@Peter更具python风格的答案。这就是您文本文件的确切内容?(可能还有一些空行):如果字符串中没有与模式匹配的位置,则返回None;请注意,这与在字符串中的某个点查找零长度匹配不同。