我有只需要'foo'和'bar'拆分的文件。用python拆分文件名
dn = "C:\\X\\Data\\"
文件
f= C:\\X\\Data\\foo.txt
f= C:\\X\\Dats\\bar.txt
我已经试过f.split(".",1)[0]
我自以为DN和.txt是预定义的,我可以减,都能跟得上。 斯普利特不适合我。
我有只需要'foo'和'bar'拆分的文件。用python拆分文件名
dn = "C:\\X\\Data\\"
文件
f= C:\\X\\Data\\foo.txt
f= C:\\X\\Dats\\bar.txt
我已经试过f.split(".",1)[0]
我自以为DN和.txt是预定义的,我可以减,都能跟得上。 斯普利特不适合我。
如何使用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')
这两行返回的文件名列表,而扩展:
import os
[fname.rsplit('.', 1)[0] for fname in os.listdir("C:\\X\\Data\\")]
看来你忽略了一些代码。从我可以告诉你试图拆分文件的内容。
要解决您的问题,您需要对目录中的文件列表进行操作。这就是os.listdir
为你所做的。我还添加了更复杂的分割。 rsplit
从右侧运行,并且只会拆分它找到的第一个.
。请注意0作为第二个参数。
要处理路径和文件名,最好在Python中使用内置模块os.path
。请查看该模块中的功能dirname
,basename
和split
。
另一个例子:
f.split('\\')[-1].split('.')[0]
更为准确,能够'os.path'。 – Keith
更准确,更准确。 – Martlark