擅长:python、mysql、java
<pre><code>import numpy as np
import cStringIO
import re
data = """
DMStack failed for: lsst_z1.0_400.fits
DMStack failed for: lsst_z1.0_401.fits
DMStack failed for: lsst_z1.0_405.fits
DMStack failed for: lsst_z1.0_408.fits
DMStack failed for: lsst_z1.0_412.fits
DMStack failed for: lsst_z1.0_414.fits
DMStack failed for: lsst_z1.0_420.fits
DMStack failed for: lsst_z1.0_423.fits
DMStack failed for: lsst_z1.0_433.fits
"""
# ifile = cStringIO.StringIO()
# ifile.write(data)
ifile = 'a.txt'
with open(ifile, 'w') as fo:
fo.write(data.lstrip())
# regex
regexp = r".*_(\d+?).fits"
# This works fine
ans = [int(re.findall(regexp, line)[0]) for line in open(ifile)]
print(ans)
# using fromregex
dt = [('num', np.int32)]
x = np.fromregex(ifile, regexp, dt)
y=[]
for i in x:
y = y + [i[0]]
print y
"""
[400, 401, 405, 408, 412, 414, 420, 423, 433]
[400, 401, 405, 408, 412, 414, 420, 423, 433]
"""
</code></pre>
<p>我不知道这样做没有一个循环。你知道吗</p>