当前位置:  开发笔记 > 编程语言 > 正文

在同一个表达式中拆分两次?

如何解决《在同一个表达式中拆分两次?》经验,为你挑选了1个好方法。

想象一下,我有以下几点:

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]

有没有机会简化只用一个表达式做同样工作的事情?



1> Florian Bösc..:

您可以使用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更合适(因此获得了更多的点,然后是任何其他答案),因为它不会在使用不同路径分隔符的其他平台上分解(你会惊讶于这可能是多变的).

它也带有大多数点,因为它准确地回答了你对"一条线"的问题并且在美学上比你的例子更令人愉悦(即使这是有争议的,因为所有的品味问题)

推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有