擅长:python、mysql、java
<p>我想你要找的是<a href="https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_fwf.html" rel="nofollow noreferrer">^{<cd1>}</a>读取一个固定宽度的文件。在这种情况下,您可以指定列规格:</p>
<pre class="lang-py prettyprint-override"><code>pd.read_fwf(io.StringIO('''|10637 4652|
| 1038 1037|
|7061219637|
|82004 2082|'''), colspecs=[(1, 6), (6, 11)], header=None)
</code></pre>
<p>列规范为0索引和端排他。您也可以使用<code>widths</code>参数,但在剥离<code>|</code>之前,我会避免使用它,以确保正确地将变量读入为数字,而不是以管道开头或结尾的字符串</p>
<p>在这种情况下,这将产生:</p>
<pre><code> 0 1
0 10637 4652
1 1038 1037
2 70612 19637
3 82004 2082
</code></pre>
<p>我通过了<code>header=None</code>,因为您的示例数据中缺少头。您可能需要根据需要进行调整。我还把你输入的所有空白线都删去了。如果输入中实际上有空行,那么我将首先运行:<code>'\n'.join((s for s in input_string.split('\n') if len(s.strip()) != 0))</code>,然后将其传递给解析。在这里,您还需要首先将文件作为字符串加载,清理它,然后使用<code>io.StringIO</code>将其传递给<code>read_fwf</code></p>