如何提取具有两个文件扩展名的文件名? [关闭]

问题描述 投票:0回答:3

我有一个包含多个文件的文件夹,其中包含双重扩展名“.nii.gz”。我想使用os.path.basename提取文件名,但此函数仅返回第一个扩展名为“.nii”的文件名。如何通过两个扩展名提取完整的文件名?

python filepath os.path dirname
3个回答
3
投票

为什么不使用好老str.split

filename = 'file.nil.gz'
li = filename.split('.')
basename = li[0]
extensions = li[1:]

print(basename)
#file
print(extensions)
#['nil', 'gz']

0
投票

我认为,最佳做法是使用pathlib进行文件路径操作。

码:

from pathlib import Path

print(Path("C://filename.tar.gz").suffixes)

结果:

['.tar', '.gz']

要将所有后缀提取到一个字符串中,只需加入它们即可:

print("".join(Path("C://filename.tar.gz").suffixes))

0
投票

此函数提取整个名称,即使有多个“。”:

from os import listdir
from os.path import isfile, join
mypath = 'blabla'
onlyfiles = [f for f in listdir(mypath) if isfile(join(mypath, f))]
print(onlyfiles)

如果你不想看到扩展名,那么这里是附加组件:

onlyfiles = [f.split('.')[0] for f in listdir(mypath) if isfile(join(mypath, f))]
print(onlyfiles)
© www.soinside.com 2019 - 2024. All rights reserved.