文件夹中有许多文件,例如
sample-file.dat host-111.222.333.444.dat win.2k3.dat hello.micro.world.dat
我使用的是分裂
file = os.path.basename(path)
filename = file.split(".")[0]
但它并不适用于所有文件,是否有更好的方法来读取整个文件名,即使是点,只忽略.dat扩展名
答案 0 :(得分:3)
尝试
if file.endswith('.dat'):
filename = file[:-4]
file[:-4]
表示获取字符串file
并删除最后四个字符
或者,请参阅此问题以获取更多答案:How to replace (or strip) an extension from a filename in Python?
答案 1 :(得分:3)
我会使用rfind
:
>>> s = "host-111.222.333.444.dat"
>>> filename = s[:s.rfind(".")]
>>> filename
'host-111.222.333.444'
它与find()
类似,但它返回最高索引。
希望它有所帮助!
答案 2 :(得分:3)
如果他们有多个点,切片并重新加入!
file = os.path.basename(path)
filename = ".".join(file.split(".")[:-1])
这将删除最后一点之后的内容,而不检查内容,即