Python lstrip有时会删除额外字符

时间:2015-04-16 15:05:30

标签: python-2.7

我有Python 2.7代码,可以在文件列表上运行。在部分代码中,我删除了目录信息。今天,当文件名以" s"开头时,我惊讶地发现代码无法正常工作。此示例代码演示了此问题:

import os

TEST_RESULTS_DIR = ".." + os.sep + "Test Results"

filename = TEST_RESULTS_DIR + os.sep + "p_file.txt"
stripped_filename = filename.lstrip(TEST_RESULTS_DIR + os.sep)
print ("%s : %s") % (filename, stripped_filename)

filename = TEST_RESULTS_DIR + os.sep + "s_file.txt"
stripped_filename = filename.lstrip(TEST_RESULTS_DIR + os.sep)
print ("%s : %s") % (filename, stripped_filename)

当我运行此代码时,我得到了这个:

  

.. \测试结果\ p_file.txt:p_file.txt

     

.. \测试结果\ s_file.txt:_file.txt

有谁理解为什么?

1 个答案:

答案 0 :(得分:1)

Lstrip不会替换另一个字符串开头的字符串,它会从调用它的字符串中删除与字符串参数中的字符匹配的所有字符。

例如:

"aaabbbc".lstrip("ba") = "c"

你的目录中有s,所以它有条纹,如果文件以u或e开头,你会看到相同的结果。