Python中带字符串的二进制文件

Python中带字符串的二进制文件,python,Python,我是python初学者。 我写了这段代码,但无法成功运行。 有人能理解为什么 if __name__ == '__main__': # if "pro" begin with "test", delete "test" from "pro". pro = "001001111010010101001" test = "0010" if pro.startswith(test): pro = pro.lstrip(test) #

我是python初学者。 我写了这段代码,但无法成功运行。 有人能理解为什么

if __name__ == '__main__':
    # if "pro" begin with "test", delete "test" from "pro".
    pro = "001001111010010101001"
    test = "0010"

    if pro.startswith(test):

        pro = pro.lstrip(test)
        # My ideal -> pro == "01111010010101001" 

        print pro
    print pro
此代码不输出任何内容。

lstripchars返回字符串的一个副本,其中所有字符都已从字符串开头剥离。因此,如果您通过了包含1,0的测试,它将删除pro中仅包含0,1的所有字符

>>> pro = pro.lstrip('10')
>>> pro
''
相反,您可以只使用切片:

>>> if pro.startswith(test):
...    pro=pro[len(test):]
... 
>>> pro
'01111010010101001'
lstripchars返回字符串的一个副本,其中所有字符都已从字符串开头剥离。因此,如果您通过了包含1,0的测试,它将删除pro中仅包含0,1的所有字符

>>> pro = pro.lstrip('10')
>>> pro
''
相反,您可以只使用切片:

>>> if pro.startswith(test):
...    pro=pro[len(test):]
... 
>>> pro
'01111010010101001'
str.lstrip删除您提供给它的字符集中出现的所有字符。由于在该集合中同时给了0和1,并且字符串仅由0和1组成,因此删除了整个字符串

换句话说,str.lstrip不会删除前缀。它一次删除一个字符,前提是该字符在参数中命名:

>>> '0123'.lstrip('0')
'123'
>>> '0123'.lstrip('10')
'23'
>>> '0123'.lstrip('20')
'123'
请删除第一个测试字符:

pro = pro[len(test):]
str.lstrip删除您提供给它的字符集中出现的所有字符。由于在该集合中同时给了0和1,并且字符串仅由0和1组成,因此删除了整个字符串

换句话说,str.lstrip不会删除前缀。它一次删除一个字符,前提是该字符在参数中命名:

>>> '0123'.lstrip('0')
'123'
>>> '0123'.lstrip('10')
'23'
>>> '0123'.lstrip('20')
'123'
请删除第一个测试字符:

pro = pro[len(test):]

这是因为lstrip将删除给定集合中的所有左字符,因此将删除所有字符:

我认为你需要:

pro = pro.startswith(test) and pro[len(test):] or pro

这将从pro的开头删除test(如果有)。

这是因为lstrip将删除给定集合中的所有左字符,因此将删除所有内容:

我认为你需要:

pro = pro.startswith(test) and pro[len(test):] or pro

这将从pro的开始删除测试(如果有)。

就像额外的一样。。这也将有助于:

>>> pro = "001001111010010101001"
>>> test = "0010"
>>> if pro.startswith(test):
       pro = pro.partition(test)[-1]
       print pro

01111010010101001

同样额外的。。这也将有助于:

>>> pro = "001001111010010101001"
>>> test = "0010"
>>> if pro.startswith(test):
       pro = pro.partition(test)[-1]
       print pro

01111010010101001

如果要使它成为一个一行程序,那么至少要使用一个条件表达式:pro[lentest:]如果pro.startswithtest else pro。如果要使它成为一个一行程序,那么至少要使用一个条件表达式:pro[lentest:]如果pro.startswithtest else pro。我认为pro=pro[lentest:]可能比使用pro.partition更清晰。我认为pro=pro=pro[lentest:]可能比使用pro.partition更清晰。非常感谢大家!!我可以按照我的理想来做。非常感谢大家!!我可以按照我的理想来做。谢谢大家!我明白了。谢谢大家!我明白了。