給定文件的路徑:取代文件路徑和擴展名元素的最快方法?
file = "/directory/date/2011/2009-01-11 This is a file's path/file.jpg"
如何快速將其替換爲:
new_file = "/newdirectory/date/2011/2009-01-11 This is a file's path/file.MOV"
的同時更改目錄 「newdirectory」 和 「.JPG」 爲 「.MOV」
給定文件的路徑:取代文件路徑和擴展名元素的最快方法?
file = "/directory/date/2011/2009-01-11 This is a file's path/file.jpg"
如何快速將其替換爲:
new_file = "/newdirectory/date/2011/2009-01-11 This is a file's path/file.MOV"
的同時更改目錄 「newdirectory」 和 「.JPG」 爲 「.MOV」
那麼這可以用不同的方式完成,但這是我的方式
首先更改擴展名。這可以通過os.path.splitext東西很容易做到像
這給了路徑
"/directory/date/2011/2009-01-11 This is a file's path/file.MOV"
現在將目錄更改到newdirectory,我們可以使用str.split, with maxsplit選項。
new_file=new_file.split('/',2)
最後使用join,用你喜歡的目錄以「/」替換第二項的列表作爲分隔符
new_file = '/'.join([new_file[0],"newdirectory",new_file[2]])
所以最後我們
"/newdirectory/date/2011/2009-01-11 This is a file's path/file.MOV"
所以要總結,它歸結爲三條線
new_file=os.path.splitext(path)[0]+".MOV"
new_file=new_file.split('/',2)
new_file = '/'.join([new_file[0],"newdirectory",new_file[2]])
我會利用os.sep
import os
path = "/directory/date/2011/2009-01-11 This is a file's path/file.jpg"
path = os.path.splitext(path)[0] + '.mov'
path = path.split(os.sep, 2)
path[1] = 'newdirectory'
path = os.sep.join(path)
print path
結果的:
/newdirectory/date/2011/2009-01-11 This is a file's path/file.mov