我有一个像这样的字符串:
mystring="Clusterd695c_ROUGE1.csv"
当我使用mystring.rstrip("_ROUGE1.csv")
时,我希望返回"Clusterd695c"
,但得到"Clusterd695"
。好像没有看到最后一个字符“ c”。这仅在字符“ c”发生,其他字符有效。像这样:
mystring="Clusterd695f_ROUGE1.csv"
mystring.rstrip("_ROUGE1.csv")
然后我得到的是"Clusterd695f"
。
我该如何纠正?
答案 0 :(得分:3)
这让我有些惊讶,但问题是rstrip
在提供字符串时会将该字符串视为一个集合,并从字符串末尾删除字符,直到它们不属于该集合为止。由于新创建的集合中有一个“ c”(即 c sv),因此它也会在最后删除“ c”,并停止在“ 5”,因为它不属于字符串“ _ROUGE1.csv”。
一种解决方法是使用替换:mystring.replace("_ROUGE1.csv", "")
;另一个选择是简单地切掉最后len("_ROUGE1.csv")
个字符。 replace
方法的一个警告是它将在字符串中的任意位置替换该字符串 ,因此"_ROUGE1.csv_ROUGE1.csv".replace("_ROUGE1.csv", "") == ""