从字符串中提取值
我正在尝试从一个字符串中提取一些值,我试过使用 re.match
,但一直没有成功。这个字符串是:
'/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
我试过:
map(int,re.search("Value\s*=\s*").group(1))
还有:
'/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'.split(' = ')
我不知道还可以添加什么或者该怎么做。我想获取属性 'Value, Max, Step'
及其对应的值。有没有什么办法可以做到这一点?
谢谢大家的帮助
4 个回答
0
s = '/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
data = {}
for l in s.split('\r\n'):
if " = " in l:
k,v = l.split(" = ")
data[k] = int(v)
print data
当然可以!请把你想要翻译的内容发给我,我会帮你把它变得更简单易懂。
3
在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如说,有人可能在使用一个叫做“库”的东西时,发现它的某些功能没有按预期工作。这种情况可能会让人感到困惑,因为我们可能不知道问题出在哪里。
通常,解决这类问题的第一步是检查代码,看看有没有写错的地方。接着,可以查看相关的文档,看看有没有说明这个功能的使用方法。文档就像是使用说明书,里面会告诉你怎么正确使用这个工具。
如果自己解决不了,还可以去一些论坛,比如StackOverflow,向其他人求助。在这些地方,很多有经验的程序员会分享他们的经验和解决方案,帮助你找到问题的答案。
总之,遇到问题时,不要着急,先检查代码,再查阅文档,最后可以寻求社区的帮助。这样一步一步来,问题通常都能得到解决。
>>> s = '/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
>>> bits = s.split('\r\n')
>>> val, max_val, step = [int(bits[i].partition(' = ')[2]) for i in [1, 3, 4]]
>>> val
1800
>>> max_val
3600
>>> step
1
6
对于这个特定的字符串,下面的代码可以把它解析成一个字典:
s = '/opt/ad/bin$ ./ptzflip\r\nValue = 1800\r\nMin = 0\r\nMax = 3600\r\nStep = 1\r\n'
d = {}
for pair in [val.split('=') for val in s.split('\r\n')[1:-1]]:
d[pair[0]] = int(pair[1])