如何获取没有目录名的文件名

时间:2013-04-18 18:38:57

标签: python

如何在结果中没有目录信息的目录中仅列出文件名?我试过了

for file in glob.glob(dir+filetype):
    print file

给我结果 /path_name/1.log,/path_name/2.log,.... 但我需要的只是文件名:1.log2.log等。我不需要结果中的目录信息。是否有一种简单的方法来摆脱路径信息?我不希望在结果上有一些substr。谢谢!

3 个答案:

答案 0 :(得分:12)

os.path.basename

  

返回路径名path的基本名称。这是通过将path传递给函数split()而返回的对的第二个元素。请注意,此函数的结果与Unix basename程序不同;其中basename为'/ foo / bar /'返回'bar',basename()函数返回一个空字符串('')。

所以:

>>> os.path.basename('/path_name/1.log,/path_name/2.log')
'2.log'

答案 1 :(得分:2)

import os

# Do not use 'dir' as a variable name, as it's a built-in function
directory = "path"
filetype  = "*.log"

# ['foo.log', 'bar.log']
[f for f in os.listdir(directory) if f.endswith(filetype[1:])]

答案 2 :(得分:1)

你可以做到

import os
[file.rsplit(os.path.sep, 1)[1] for file in glob.glob(dir+filetype)]