我无法将python字符串中的\x替换为'‘
x ='\x01'
re.sub('\x','',x)
给予ValueError: invalid \x转义。
isinstance(x,unicode)
给出了False。
def remove_non_ascii_2(text):
return re.sub(r'[^\x00-\x7F]', '', text)
x = '\x01'
remove_non_ascii_2(x)
返回'\x01‘但不起作用
如何将'\x‘替换为空字符串?
发布于 2018-07-05 23:19:15
从评论中可以看出,您遇到的最大问题似乎是数据源不一致。在给定的值列表中,您有常规的浮点值:nan
、1.0
、表示浮点数的0.0
字符串:"1.0"
、"0.0"
,以及包含整数作为二进制值的字符串:"\x01"
对字符串中的浮点数进行排序比较简单,如下所示:
if type(item) == float:
#do stuff
此外,如果您想要对浮点值(一种特殊类型的nan
)进行排序,您可以这样做:
if type(item) == float
if item == float('nan'):
#do other stuff
else:
#do stuff
对字符串进行排序有点棘手,因为如果字符串看起来已经像浮点型(rules for looking like a float),那么有许多方法可以使用string.The常规字符串表示值,然后使用float("1.0")
works进行浮点型转换。但是,如果该值由字符串字符的二进制值表示(听起来可能是这样),则必须找到一种方法来区分这两种类型的字符串。这可能和第一次尝试调用float(item)
并在格式不符合“像浮点数”标准时捕获错误一样简单。然后,假设您只有一个字符,您可以使用ord(item)
返回该字符的二进制表示。这可能看起来像这样:
try:
converted = float(item)
catch ValueError:
if len(item) == 1:
converted = ord(item)
else:
#determine how to handle multi character values
https://stackoverflow.com/questions/51193908
复制相似问题