2013-10-12 63 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。我該如何解決? –

相關問題