Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 替换文件元素的最快方法&x27;s路径和扩展?_Python - Fatal编程技术网

Python 替换文件元素的最快方法&x27;s路径和扩展?

Python 替换文件元素的最快方法&x27;s路径和扩展?,python,Python,给定文件的路径: 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”这可以用不同的方法完成,但我会这样做 首先更改扩展名。这可以通过以下方式轻松实现 p

给定文件的路径:

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”

这可以用不同的方法完成,但我会这样做

首先更改扩展名。这可以通过以下方式轻松实现

path = "/directory/date/2011/2009-01-11 This is a file's path/file.jpg"
new_file=os.path.splitext(path)[0]+".MOV"
这将给出如下路径:

"/directory/date/2011/2009-01-11 This is a file's path/file.MOV"
现在要将目录更改为newdirectory,我们可以使用选项

最后使用,将列表中的第二项替换为您最喜爱的目录,并使用“/”作为分隔符

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]])
我会利用

结果:

/newdirectory/date/2011/2009-01-11 This is a file's path/file.mov /newdirectory/date/2011/2009-01-11这是一个文件的路径/file.mov
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