我有一组从文件中读取的字符串 say ['\x1\p1', '\x2\p2', '\x3\p3', ... etc.]
.
当我将它们读入变量并打印它们时,字符串显示为 ['\\x1\\p1', '\\x2\\p2', '\\x3\\p3', ... etc.]
. 我知道该变量在'\x1\p1', ... etc.
内部表示,但是当它显示时,它以双斜杠显示。
但是现在我想在句子中搜索和替换这个列表的元素,即说如果\x1\p1
在句子中"How are you doing \x1\p1"
然后替换'\x1\p1'
为'Y'。但是在这种情况下替换方法不起作用!想知道为什么?
让我进一步解释一下:我的文本文件 ( codes.txt
) 有条目\xs1\x32
,\xs2\x54
由换行符分隔。所以当我阅读它时
with open('codes') as codes:
code_list = codes.readlines()
接下来,我确实可以说code_list_element_1 = code_list[1].rstrip()
当我打印时code_list_element_1
,它显示为'\\xs1\\x32'
接下来,让我的目标字符串是target_string = 'Hi! my name is \xs1\x32'
现在我想用say替换code_list_element_1
应该\xs1\x32
在target_string中的'Y'
所以,我试过了code_list_element_1 in target_string
。我明白了False
接下来,我没有从文本文件中读取代码,而是初始化了一个变量find_me = '\xs1\x32'
现在,我试试find_me in target_string
。我明白了True
并因此target_string.replace(find_me,"Y")
显示我想要的:"Hi! my name is Y"