【问题标题】:How can I extract a file name with dat extension in python?如何在 python 中提取带有 dat 扩展名的文件名?
【发布时间】:2015-02-24 23:47:20
【问题描述】:

一个文件夹里有很多文件

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

我用的是拆分

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

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

【问题讨论】:

    标签: python file io


    【解决方案1】:

    试试

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

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

    或者,请参阅此问题以获取更多答案:How to replace (or strip) an extension from a filename in Python?

    【讨论】:

    • 我们为什么要使用 file[:-4] ?
    • @leanjohnlearner 这意味着删除最后四个字符(在这种情况下为.dat)。
    【解决方案2】:

    我会使用rfind:

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

    类似于find(),但它返回最高索引。

    希望对你有帮助!

    【讨论】:

      【解决方案3】:

      如果它们有多个点,则使用 join 进行切片和重组!

      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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2010-10-07
        • 1970-01-01
        • 2011-05-25
        • 2011-03-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-03-10
        相关资源
        最近更新 更多