假设我们有一个努比·恩达雷与纽比街python3中的元素。例如,arr下面是努比·恩达雷有四个纽比街像这样的元素:
>>> print(arr)
['\tSTART\t 0\n' '12345 ABCDEFG' '1A 2B3C' '\nE N D' ' C++ * 1']
我试图将arr
的内容写入到一个文件中,不使用[
、]
和不带每个numpy.str_
元素的'
,同时删除所有空白,即制表符、换行符和所有空白字符。在
也就是说,我试图在这样的文件上写入arr
:
从我的previous question开始,如果我这样做的话
with open(resultfile, 'w') as f:
f.write(''.join(tknstring).encode('unicode_escape'))
它删除了除空格字符外的所有内容,即:
START012345 ABCDEFG1A 2B3CE N D C++ * 1
我知道,如果尝试以下操作,我可以删除所有空格字符:
''.join(tknstring.split())
我的问题是如何编写上面的语句来删除空格字符,同时连接元素并应用encode(如上所示)。在
连接完所有数组元素后,只需按任何空格字符拆分结果字符串,然后重新连接获得的数组:
从您上一个问题(和我的答案)中的字符串数组开始:
我们可以使用
^{pr2}$join
将其转换为单个字符串(就像它是一个字符串列表一样):使用
regex
我们可以轻松地将所有“空白”替换为空白:==========
带有[]和引号的显示只是显示数组的标准方式:
它与显示列表的标准方式略有不同(注意逗号):
您可能会发现显示}。在
str(arr)
和repr(arr)
字符串很有启发性。每个Python对象都有一种将自身显示为字符串的方式。实际上有两种方式,str
和{==========
unicode转义可以应用于“join”字符串,但看起来
re.sub
对此没有任何作用。我们必须研究re
文档,看看是否有关于字节字符串的工作:但是如果你在手之前去掉特殊字符,你可以在之后应用编码。在
此
re.sub
也可以使用普通编码:=============
split()
也起作用,因为默认拆分是“空白”(类似于re.split('\s+',astr)
)。所以这些变化起作用了:encode
并与b''
连接:使用
escape
,split
不再识别这些特殊字符您也可以在删除空白后进行编码。您可以添加
escape
,但它现在没有任何用途。在相关问题 更多 >
编程相关推荐