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

时间:2015-02-24 23:47:21

标签: python file io

文件夹中有许多文件,例如

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扩展名

3 个答案:

答案 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])

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

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