2013-10-12 27 views
0

所以基本上我想在我调用函数后更改函数内的变量的文件名,但我不确定如何执行此操作。我很确定这会是一件相当简单的事情,但是我可能会以错误的方式看待它。下面是我想达到一个更详细的解释:Python-如何更改函数内的变量的文件名

说我有两个文件,uncooked_fish和uncooked_cake:

def cook(food): 
    food.save(food + "_XYZ.png") #the current saving method I'm using, which is not sufficient 

在函数中调用它们之后,我想改变他们的名字cooked_fish。 png和finished_cake.png,但是用我目前的保存方法,我无法这样做。任何帮助将非常感谢!

+3

尝试'os.rename'。 –

+0

修复代码的缩进。 –

+0

我还是有点困惑 - 如果我使用os.rename;我是否必须为每个文件名拥有不同的os.rename,即使如此,对一个变量使用多个os.rename也无济于事。仍然非常卡住! –

回答

0

我结束了使用字符串的切片删除的文件扩展名,这让我再替换文件前插入其他信息扩展,代码如下:

food.save (food[0:-4]+ '_X.png') 

从本质上讲,使用切片你可以完全重写的文件名,所以具有类似的效果os.rename。

非常感谢您的帮助!

0

至于建议的@hcwhsa,你应该重写你的cook方法如下:

import os 

def cook(food): 
    // make something with food... 
    os.rename(food, food + '.png') // e.g.: rename 'finished_cake' to 'finished_cake.png' 
+0

当我尝试使用变量两次时,出现以下错误 - WindowsError:[错误183]当该文件已存在时无法创建文件。我做错了什么...? –

+0

@詹姆斯:它发生了,因为'dest'文件已经存在。 – user278064

+0

好的,解决了这个问题,但仍然存在。例如,如果我有以下os.rename(食物,食物+'_x.png'),我希望它显示为food_x.png,而是显示为food.png_x。我该如何解决? –

相关问题