<p>从您上一个问题(和我的答案)中的字符串数组开始:</p>
<pre><code>arr = np.array(['\tSTART\t 0\n', '12345 ABCDEFG', '1A 2B3C', '\nEN D'])
</code></pre>
<p>我们可以使用<code>join</code>将其转换为单个字符串(就像它是一个字符串列表一样):</p>
^{pr2}$
<p>使用<code>regex</code>我们可以轻松地将所有“空白”替换为空白:</p>
<pre><code>In [1155]: import re
In [1156]: re.sub('\s','',astr)
Out[1156]: 'START012345ABCDEFG1A2B3CEND'
</code></pre>
<p>==========</p>
<p>带有[]和引号的显示只是显示数组的标准方式:</p>
<pre><code>In [1157]: print(arr)
['\tSTART\t 0\n' '12345 ABCDEFG' '1A 2B3C' '\nE N D']
</code></pre>
<p>它与显示列表的标准方式略有不同(注意逗号):</p>
<pre><code>In [1158]: print(arr.tolist())
['\tSTART\t 0\n', '12345 ABCDEFG', '1A 2B3C', '\nE N D']
</code></pre>
<p>您可能会发现显示<code>str(arr)</code>和<code>repr(arr)</code>字符串很有启发性。每个Python对象都有一种将自身显示为字符串的方式。实际上有两种方式,<code>str</code>和{<cd6>}。在</p>
<p>==========</p>
<p>unicode转义可以应用于“join”字符串,但看起来<code>re.sub</code>对此没有任何作用。我们必须研究<code>re</code>文档,看看是否有关于字节字符串的工作:</p>
<pre><code>In [1164]: bstr=''.join(arr).encode('unicode_escape')
In [1165]: bstr
Out[1165]: b'\\tSTART\\t 0\\n12345 ABCDEFG1A 2B3C\\nE N D'
In [1166]: re.sub(b'\s',b'',bstr)
Out[1166]: b'\\tSTART\\t0\\n12345ABCDEFG1A2B3C\\nEND'
</code></pre>
<p>但是如果你在手之前去掉特殊字符,你可以在之后应用编码。在</p>
<pre><code>In [1168]: re.sub('\s','',astr).encode('unicode_escape')
Out[1168]: b'START012345ABCDEFG1A2B3CEND'
</code></pre>
<p>此<code>re.sub</code>也可以使用普通编码:</p>
<pre><code>In [1177]: re.sub(b'\s',b'',astr.encode())
Out[1177]: b'START012345ABCDEFG1A2B3CEND'
</code></pre>
<p>=============</p>
<p><code>split()</code>也起作用,因为默认拆分是“空白”(类似于<code>re.split('\s+',astr)</code>)。所以这些变化起作用了:</p>
<p><code>encode</code>并与<code>b''</code>连接:</p>
<pre><code>In [1180]: b''.join(astr.encode().split())
Out[1180]: b'START012345ABCDEFG1A2B3CEND'
</code></pre>
<p>使用<code>escape</code>,<code>split</code>不再识别这些特殊字符</p>
<pre><code>In [1181]: b''.join(astr.encode('unicode_escape').split())
Out[1181]: b'\\tSTART\\t0\\n12345ABCDEFG1A2B3C\\nEND'
</code></pre>
<p>您也可以在删除空白后进行编码。您可以添加<code>escape</code>,但它现在没有任何用途。在</p>
<pre><code>In [1183]: (''.join(astr.split())).encode()
Out[1183]: b'START012345ABCDEFG1A2B3CEND'
</code></pre>