如何在python中提取带有dat扩展名的文件名?

How can I extract a file name with dat extension in python?

文件夹中有很多文件

sample-file.dat host-111.222.333.444.dat win.2k3.dat
hello.micro.world.dat

我正在使用拆分

1
2
 file = os.path.basename(path)
filename = file.split(".")[0]

但它不适用于所有文件,是否有更好的方法来读取整个文件名,即使用点和忽略.dat扩展名


如果他们有多个点,切片并重新加入!

1
2
file = os.path.basename(path)
filename =".".join(file.split(".")[:-1])

这将删除最后一点之后的内容,而不检查内容,即。

  • a.b.c => a.b.
  • a.b.dat => a.b.
  • a.exe => a
  • .emacs =>错误?
  • A.B.C. => a.b.c

我会用rfind

1
2
3
4
>>> s ="host-111.222.333.444.dat"
>>> filename = s[:s.rfind(".")]
>>> filename
'host-111.222.333.444'

它就像find(),但它返回最高的索引。

希望能帮助到你!


尝试

1
2
if file.endswith('.dat'):
    filename = file[:-4]

file[:-4]表示获取字符串file并删除最后四个字符

或者,请参阅此问题以获取更多答案:如何在Python中替换(或剥离)文件名中的扩展名?