How to get only the name of the path with python?
本问题已经有最佳答案,请猛点这里访问。
我有以下字符串:
1 | a ="/home/user/Downloads/repo/test.txt" |
我的目标只是创建一个只包含
实际上a来自
1 | f = tkFileDialog.asksaveasfile(mode='w', defaultextension=".txt") |
号
a等于
但我意识到
在python 3.4+中,可以使用
1 2 3 | from pathlib import Path p = Path("/home/user/Downloads/repo/test.txt") print(p.stem) |
。
似乎您正在寻找
1 2 3 4 5 6 7 8 | >>> import os.path >>> os.path.basename("/var/log/err.log") 'err.log' >>> os.path.splitext(os.path.basename("/var/log/err.log")) ('err', '.log') >>> os.path.splitext(os.path.basename("/var/log/err.log"))[0] 'err' >>> |
使用
1 2 3 | import os.path basename = os.path.splitext(os.path.basename(f.name))[0] |
使用
在Python3.4或更高版本(或作为单独的后端安装)中,您还可以使用
1 2 3 4 5 6 7 | try: import pathlib except ImportError: # older Python version, import the backport instead import pathlib2 as pathlib basename = pathlib.Path(f.name).stem |
号
演示:
1 2 3 4 5 6 7 8 9 10 11 12 13 | >>> import os.path >>> a ="/home/user/Downloads/repo/test.txt" >>> os.path.basename(a) 'test.txt' >>> os.path.splitext(os.path.basename(a)) ('test', '.txt') >>> os.path.splitext(os.path.basename(a))[0] 'test' >>> import pathlib >>> pathlib.Path(a) PosixPath('/home/user/Downloads/repo/test.txt') >>> pathlib.Path(a).stem 'test' |