仅从以字符串形式存储的文件路径中获取文件名

3

如何从变量中删除路径,只保留文件名和扩展名?

root=tk.Tk()
root.withdraw()
FileName=filedialog.askopenfilenames()
print(Filename)

我只想要例如namefile.txt,而不是整个路径,比如/path/to/namefile.txt

请查看 os.path.basename() - John Gordon
2个回答

9

For python3.4+, pathlib

from pathlib import Path

name = Path(Filename).name

类型错误:期望字符串、字节或 os.PathLike 对象,而不是元组。 - user15496986
在你的代码中,你使用了 askopenfilenames(), 它返回一个元组。尝试使用 Path(Filename[0]).name - hkennyv
2
值得一提的是,我认为这适用于任何平台。除此之外,几乎任何其他方法都需要在 Windows 和 Mac/Linux 上手动处理不同的路径分隔符,而没有人有时间去做这些事情。 - CrazyChucky

0
首先,您需要对字符串进行清理,以便它能够跨平台工作,然后您就可以轻松提取最后一节。
filename = filename.replace('\\', '/') # Turns the Windows filepath format to the Literally everything else format.
filename = filename.split('/')[-1]

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