如何在python目录中获取文件名列表(没有扩展名)?

时间:2017-07-28 06:57:14

标签: python

假设我的文件夹结构为

+Data
  -abc.jpg
  -db.jpg
  -ap.jpg

输入是'路径/到/数据'

预期输出为[' abc'' db',' ap']

我看到很多类似的问题,但没有得到我想要的东西。 我更喜欢在python中使用os模块。

6 个答案:

答案 0 :(得分:4)

试试这个,

l=os.listdir('path')
li=[x.split('.')[0] for x in l]
  1. 首先列出目录文件
  2. .分割文件,然后取第一个参数。

答案 1 :(得分:3)

import os    
files_no_ext = [".".join(f.split(".")[:-1]) for f in os.listdir() if os.path.isfile(f)]
print(files_no_ext)

答案 2 :(得分:1)

您可以使用以路径为参数的os.listdir并返回文件目录列表。
>>> list_ = os.listdir("path/to/Data")
>>> list_
>>> ['abc.jpg', 'dn.jpg', 'ap.jpg']

使用该列表,您只需要做一个理解列表,将每个元素拆分为“。” (点),取除最后一个元素之外的所有元素与'。'连接。 (点)并使用os.path.file()检查元素是否为文件。

>>> list_ = ['.'.join(x.split('.')[:-1]) for x in os.listdir("path/to/Data") if os.path.isfile(os.path.join('path/to/Data', x))]
>>> list_
>>> ['abc', 'dn', 'ap']

答案 3 :(得分:0)

    import os
    from os import listdir
    from os.path import isfile, join
    def filesMinusExtension(path):
        # os.path.splitext(f)[0] map with filename without extension with checking if file exists.
        files = [os.path.splitext(f)[0] for f in listdir(path) if isfile(join(path, f))];
        return files;

答案 4 :(得分:0)

import os
filenames=next(os.walk(os.getcwd()))[2]
efn=[f.split('.')[0] for f in filenames]

os.getcwd()   #for get current directory path

答案 5 :(得分:0)

import glob
import Path

for f in glob.glob("*.*"):
    print(Path(f).stem)