如何在结果中没有目录信息的目录中仅列出文件名?我试过了
for file in glob.glob(dir+filetype):
print file
给我结果
/path_name/1.log,/path_name/2.log,....
但我需要的只是文件名:1.log
,2.log
等。我不需要结果中的目录信息。是否有一种简单的方法来摆脱路径信息?我不希望在结果上有一些substr。谢谢!
答案 0 :(得分:12)
返回路径名
path
的基本名称。这是通过将path
传递给函数split()
而返回的对的第二个元素。请注意,此函数的结果与Unixbasename
程序不同;其中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)]