<p>对于大多数不需要的工作<code>numpy</code>。下面的代码将输入文件读入一个列表中,每个元素将是输入文件的一行(去掉尾随的换行符)。然后它创建一个长度相同的列表,每个元素都指示给定的字符串是否没有空格。如果其中任何一个是<code>False</code>,那么您就有问题了,您可以按照自己的意愿来处理这个问题。否则,无空格的条目将被读入字符串类型<code>numpy.ndarray</code>。在</p>
<pre><code>import numpy as np
#read data into list "lines"
with open('input.inp') as f:
lines = [line.rstrip('\n') for line in f]
#check ones with spaces
nospaces = [not ' ' in line for line in lines]
#throw an error here if you will
if not all(nospaces):
print('Uh-oh!')
#or just ignore the ones contaning a space and put the rest into an ndarray
goodlines = np.array(lines)[np.array(nospaces)] #the only numpy-specific part
</code></pre>
<p>示例<code>input.inp</code>:</p>
^{pr2}$
<p>输出:</p>
<pre><code>In [1131]: run foo.py
Uh-oh!
In [1132]: lines
Out[1132]:
['asfasf asfasfsa',
'asffsafsafa',
'asfafsafs afa',
'faaffasaff',
'fasafasffas',
'afssfafs asafsas']
In [1133]: goodlines
Out[1133]:
array(['asffsafsafa', 'faaffasaff', 'fasafasffas'],
dtype='|S16')
</code></pre>
<p>注意,最后的输出是“16字符字符串”类型,因为我们首先将list转换成数组,然后抛出不必要的部分。只需做一些小的工作,您就可以根据自己的喜好定制这个解决方案,而且您的示例似乎还建议您的输入行具有相同的长度(在这种情况下,生成的数组将具有最佳的<code>dtype</code>)。在</p>