【问题标题】:I need a python code that will parse a line and get values which I need我需要一个 python 代码来解析一行并获取我需要的值
【发布时间】:2013-12-09 17:36:20
【问题描述】:

我有一条类似于下面描述的线

bla bla bla- 3 [saa@dsds aaa="789" SomeName="35229644" vv="typw" ee="o" Task="None"] >bla bla bla

我需要一个 python 脚本来获取 SomeName 的值。 它会在该行中找到 'SomeName' 字符串并将其值:35229644 写入某个变量中

谢谢。

【问题讨论】:

  • 你写了哪些代码,哪些代码不工作?我们不会自愿为他人编写代码。请表明您已努力解决您的问题。
  • 在第一阶段,只有一个字符串具有整数值,我解决了我的问题,这是 line.split('"') 中 s 的代码: if s.isdigit(): ID =int(s) list1.append(ID) 因为在行中添加了其他字符串也有整数值,所以我的代码不能正常工作。我需要准确获取 SomeName 的值
  • 如果是我,我会使用正则表达式来提取值。
  • 是的,你是对的,但问题是我不喜欢那个正则表达式,但现在我明白它们有多强大,我应该学习它们:)

标签: python regex scripting


【解决方案1】:

我假设您是 Python 新手,并且正在寻找一个可行的方法示例。我也在对你的行的格式做出一些假设。试试这样的:

import re

def get_some_name(some_name, line):
    regex = r'{0}="([^"]*)"'.format(some_name)
    some_value = re.search(regex, line).groups()[0]
    return some_value

line = 'bla bla bla- 3 [saa@dsds aaa="789" SomeName="35229644" vv="typw" ee="o" Task="None"] >bla bla bla'

print(get_some_name(some_name="SomeName", line=line))

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 2013-07-24
    • 2022-01-18
    • 2017-04-01
    • 2014-12-23
    • 2020-01-07
    • 2012-10-23
    • 1970-01-01
    • 2011-12-12
    相关资源
    最近更新 更多