假设我的文件夹结构为:
+Data
-abc.jpg
-db.jpg
-ap.jpg
输入为 'path/to/Data'
期望输出为 ['abc', 'db', 'ap']
我看到很多类似的问题,但没有得到我想要的答案。 我喜欢在Python中使用os模块。
+Data
-abc.jpg
-db.jpg
-ap.jpg
输入为 'path/to/Data'
期望输出为 ['abc', 'db', 'ap']
我看到很多类似的问题,但没有得到我想要的答案。 我喜欢在Python中使用os模块。
只需尝试这个:
l=os.listdir('path')
li=[x.split('.')[0] for x in l]
.
分割文件并获取第一个参数。import os
files_no_ext = [".".join(f.split(".")[:-1]) for f in os.listdir() if os.path.isfile(f)]
print(files_no_ext)
os.listdir
不区分目录和文件,因此您的列表将包含子目录(大多为空)的条目。 - Christian Königimport glob
from pathlib import Path
for f in glob.glob("*.*"):
print(Path(f).stem)
import pathlib
,然后pathlib.Path(f).stem
。 - Yeo Keatimport os
filenames=next(os.walk(os.getcwd()))[2]
efn=[f.split('.')[0] for f in filenames]
os.getcwd() #for get current directory path
>>> list_ = os.listdir("path/to/Data")
>>> list_
>>> ['abc.jpg', 'dn.jpg', 'ap.jpg']
使用该列表,您只需进行一个推导列表,将每个元素在“.”(点)上拆分,取除最后一个元素外的所有元素,并使用“.”(点)将它们连接起来,并检查该元素是否是一个文件,使用os.path.isfile()。
>>> 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']
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;
[os.path.splitext(f)[0] for f in listdir(path) if isfile(join(path, f))]
。 - Darkaird