我有隻需要'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