【问题标题】:Split filenames with python用python分割文件名
【发布时间】:2011-11-10 08:56:45
【问题描述】:

我有一些文件,我只想要拆分后的 'foo' 和 'bar'。

dn = "C:\\X\\Data\\"

文件

f=  C:\\X\\Data\\foo.txt
f=  C:\\X\\Dats\\bar.txt

我试过f.split(".",1)[0]

我想既然 dn 和 .txt 是预定义的,我可以减去,不。 拆分对我不起作用。

【问题讨论】:

    标签: python file


    【解决方案1】:

    使用python3和pathlib

    import pathlib
    f = 'C:\\X\\Data\\foo.txt'
    print(pathlib.PureWindowsPath(f).stem)
    

    将打印:'foo'

    【讨论】:

      【解决方案2】:

      帮助您的简单示例。

      import os
      from os import path
      
      path_to_directory = "C:\\X\\Data"
      
      for f in os.listdir(path_to_directory):
          name , extension = path.splitext(f)
          print(name)
      

      输出

      foo
      bar
      

      【讨论】:

        【解决方案3】:

        如何使用 os.path 中的正确路径处理方法?

        >>> f = 'C:\\X\\Data\\foo.txt'
        >>> import os
        >>> os.path.basename(f)
        'foo.txt'
        >>> os.path.dirname(f)
        'C:\\X\\Data'
        >>> os.path.splitext(f)
        ('C:\\X\\Data\\foo', '.txt')
        >>> os.path.splitext(os.path.basename(f))
        ('foo', '.txt')
        

        【讨论】:

          【解决方案4】:

          另一个例子:

          f.split('\\')[-1].split('.')[0]
          

          【讨论】:

            【解决方案5】:

            要处理路径和文件名,最好使用Python中的内置模块os.path。请查看该模块中的函数dirnamebasenamesplit

            【讨论】:

              【解决方案6】:

              这两行返回一个不带扩展名的文件名列表:

              import os
              [fname.rsplit('.', 1)[0] for fname in os.listdir("C:\\X\\Data\\")]
              

              您似乎遗漏了一些代码。据我所知,您正在尝试拆分文件的内容。

              要解决您的问题,您需要对目录中的文件列表进行操作。这就是os.listdir 为您所做的。我还添加了更复杂的拆分。 rsplit 从右边开始运算,只会拆分它找到的第一个 .。注意 1 作为第二个参数。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-09-02
                相关资源
                最近更新 更多