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

5w9g7ksd  于 2023-01-19  发布在  Python
关注(0)|答案(6)|浏览(181)

假设我的文件夹结构为

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

输入为“路径/目标/数据”
预期输出为[“abc”、“db”、“ap”]
我看到了很多类似的问题,但没有得到我到底想要什么。我更喜欢在Python中使用OS模块。

tzdcorbm

tzdcorbm1#

简单地尝试一下,

l=os.listdir('path')
li=[x.split('.')[0] for x in l]

1.首先列出目录文件
1.按.拆分文件并获取第一个参数。

pgvzfuti

pgvzfuti2#

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

8yoxcaq73#

import glob
from Pathlib import Path

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

ecfdbz9o4#

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

os.getcwd()   #for get current directory path
dkqlctbz

dkqlctbz5#

你可以使用os.listdir,它以path作为参数,并返回一个文件列表目录。
>>> 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']

wtzytmuj

wtzytmuj6#

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;

相关问题