擅长:python、mysql、java
<p>感谢@zipa和@hpaulj,终于有了这段代码
python2和将来的陈述。它也适用于python3。你知道吗</p>
<p>我们需要使用<code>dt = [(str('num'), np.int32)]</code>,而不是<code>dt = [('num', np.int32)]</code>。你知道吗</p>
<pre><code>#!python
# -*- coding: utf-8 -*-#
#
# Imports
from __future__ import print_function, division, with_statement, unicode_literals
import numpy as np
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 = 'a.txt'
with open(ifile, 'w') as fo:
fo.write(data.lstrip())
# regex
regexp = r".*_(\d+?).fits"
dt = [(str('num'), np.int32)]
x = np.fromregex(ifile, regexp, dt)
print(x['num'])
</code></pre>