我有文件,我只想要'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是预先定义的,我可以减去,不。 斯普利特对我不起作用。
答案 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
。请查看该模块中的函数dirname
,basename
和split
。
答案 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]