我有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
有谁理解为什么?
答案 0 :(得分:1)
Lstrip不会替换另一个字符串开头的字符串,它会从调用它的字符串中删除与字符串参数中的字符匹配的所有字符。
例如:
"aaabbbc".lstrip("ba") = "c"
你的目录中有s,所以它有条纹,如果文件以u或e开头,你会看到相同的结果。