如何在Python中从路径中获取没有扩展名的文件名?

1654

如何在Python中从路径中获取没有扩展名的文件名?

"/path/to/some/file.txt"  →  "file"

112
现代 Python 的正确答案是需要向下滚动一定的距离才能找到:from pathlib import Path; print(Path("/path/to/some/file.txt").stem) >>> file - BallpointBen
在这种情况下,您需要先解析出目录路径,然后再解析出没有扩展名的文件名。import os; filepath='./readme'; dir, filename_ext = os.path.split(filepath); filename=filename_ext.rsplit('.', maxsplit=1)[0]; print(f'{dir}/{filename}') ./readme - dlink
32个回答

0
一个快速的函数,使用pathlib.Path和字符串操作来分割路径的所有扩展名:
def split_extensions(path: str | Path) -> tuple[str, str]:
    ext = "".join(Path(path).suffixes)
    return str(path).rstrip(ext), ext

# Usage
# >>> split_extensions("./data.tar") => ("./data", ".tar")
# >>> split_extensions("./data.tar.gz") => ("./data", ".tar.gz")

-2
# use pathlib. the below works with compound filetypes and normal ones
source_file = 'spaces.tar.gz.zip.rar.7z'
source_path = pathlib.Path(source_file)
source_path.name.replace(''.join(source_path.suffixes), '')
>>> 'spaces'

尽管上面描述了许多可行的实现,但我添加了这个^,因为它仅使用pathlib并适用于复合文件类型和普通文件类型。


你的回答可以通过提供更多支持信息来改进。请编辑以添加进一步的细节,例如引用或文档,以便他人可以确认你的答案是正确的。您可以在帮助中心中找到有关如何编写良好答案的更多信息。 - Community
我需要从 "/path/to/some/file.txt" 中获取 /path/to/some/ 的字符串。我该如何实现? - just_learning

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接