想象一下,我有以下几点:
inFile = "/adda/adas/sdas/hello.txt" # that instruction give me hello.txt Name = inFile.name.split("/") [-1] # that one give me the name I want - just hello Name1 = Name.split(".") [0]
有没有机会简化只用一个表达式做同样工作的事情?
您可以使用os.path.basename获取路径的最后一部分,然后使用os.path.splitext获取没有扩展名的文件名,从而独立获得您想要的平台.
from os.path import basename, splitext pathname = "/adda/adas/sdas/hello.txt" name, extension = splitext(basename(pathname)) print name # --> "hello"
使用os.path.basename和os.path.splitext而不是str.split,或者re.split更合适(因此获得了更多的点,然后是任何其他答案),因为它不会在使用不同路径分隔符的其他平台上分解(你会惊讶于这可能是多变的).
它也带有大多数点,因为它准确地回答了你对"一条线"的问题并且在美学上比你的例子更令人愉悦(即使这是有争议的,因为所有的品味问题)