用python拆分文件名

时间:2011-09-05 05:20:40

标签: python file

我有文件,我只想要'foo'和'bar'从split中删除。

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

文件

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

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

我认为既然dn和.txt是预先定义的,我可以减去,不。 斯普利特对我不起作用。

5 个答案:

答案 0 :(得分:38)

如何使用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')

答案 1 :(得分:1)

这两行返回没有扩展名的文件名列表:

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

好像你遗漏了一些代码。据我所知,你试图分割文件的内容。

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

答案 2 :(得分:1)

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

答案 3 :(得分:0)

帮助的另一个示例。

import os
from os import path
for f in os.listdir():
    name , extension = path.splitext(f)
    print(name)

答案 4 :(得分:-1)

另一个例子:

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