【发布时间】:2011-10-13 11:11:14
【问题描述】:
我使用正则表达式搜索包含数据的文本文件。我得到与此类似的输出。 例如,这是我得到的:
36
37
36
36
36
76
39
36
68
36
56
36
36
36
...
我需要所有这些 36 都在这样的数组中 ['36', '36', ....] 示例代码如下。
#!/usr/bin/python
import re
log = re.compile('Deleted file number: first: (\d+), second (\d+), third (\d+), fourth (\d+), bw (\d+), value: ([\dabcdefx]+), secondvalue: ([\d.]+)LM, hfs: ([\d.-]+)ls')
logfile = open("log.txt", "r").readlines()
List = []
for line in logfile:
m = log.match(line)
if m:
first = int (m.group(1))
second = int (m.group(2))
third = int (m.group(3))
fourth = int (m.group(4))
bw = int (m.group(5))
value = int (m.group(6),0)
secondvalue = float (m.group(7))
hfs = float (m.group(8))
List.append(str(first)+","+str(second)+"," \
+str(third)+","+str(fourth)+"," \
+str(bw)+","+str(value)+"," \
+str(secondvalue)+","+str(hfs))
for result in List:
print(result)
我可以使用 sys.stdout.write() 将其显示在与打印项相同的一行中, 但是我怎样才能将所有这些放入一个数组中,就像 array = [ "149", 149", "153", "153" 等等]
任何帮助将不胜感激。
【问题讨论】:
-
您的代码的相关摘录将对我们有所帮助。您可以创建一个列表并将每个值附加到它。
-
我得到的不是字符串,而是列
-
为什么在将它们保存为数组中的字符串时将它们转换为int和float。数组可以简单地通过 [first, second, third, ...]
-
代替 List.append(str(first)...) 做 List.extend([first, second..])。