如何使用两个文件扩展名提取文件名



我有一个文件夹,其中包含具有double Extension " .nii.gz"的多个文件。我想使用os.path.basename提取文件名,但是此功能仅使用第一个扩展名"。nii" 返回文件名。如何使用两个扩展名提取完整的文件名?

为什么不使用良好的旧 str.split

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

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

代码:

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

结果:

['.tar', '.gz']

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

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

此功能即使使用多个"。:

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)

相关内容

  • 没有找到相关文章

最新更新