2013-10-12 1 views
0

기본적으로 나는 함수를 호출 한 후에 함수 내의 변수의 파일 이름을 변경하려고합니다. 그러나 정확히 어떻게해야 할 지 잘 모르겠습니다. . 나는 그것이 꽤 간단 할 것이라는 것을 확신하지만, 나는 아마도 잘못된 방향을보고있을 것이다.파이썬 - 함수 내에서 변수의 파일 이름을 변경하는 방법

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

함수 내에서 호출 후, 나는 cooked_fish 자신의 이름을 변경하려면 :

나는 두 개의 파일, uncooked_fish 및 uncooked_cake을 말해봐 : 아래는 내가 달성하고 싶은에 대한 자세한 설명입니다. png 및 finished_cake.png,하지만 현재의 저축 방법으로는 그렇게 할 수 없습니다. 어떤 도움이라도 대단히 감사하게 될 것입니다! 다음과 같이

@hcwhsa에 의해 제안
+3

'os.rename'을 사용해보세요. –

+0

은 코드의 들여 쓰기를 수정합니다. –

+0

나는 os.rename을 사용하면 여전히 다소 혼란 스럽다. 각각의 파일 이름마다 다른 os.rename을 가져야하고, 하나의 변수에 대해 여러 개의 os.rename을 사용하면 작동하지 않습니다. 아직도 많이 붙어있어! –

답변

0

내가 파일 확장자를 제거하기 위해 문자열 슬라이스를 사용하여 결국, 내가 다음 파일을 교체하기 전에 추가 정보를 삽입 할 수있는 확장 코드는 다음과 같다 : 기본적으로

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

, 그래서 os.rename 유사한 효과를 가지고, 당신은 완전히 파일 이름을 다시 할 수있을 것 슬라이스 사용.

도움 주셔서 감사합니다.

0

, 당신은 당신의 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

@James :'dest' 파일이 이미 존재하기 때문에 발생합니다. – user278064

+0

그래, 문제가 해결되었지만 다른 문제는 여전히 남아 있습니다. 예를 들어, 다음 os.rename (food, food + '_x.png')이있는 경우 food_x.png로 표시하고 대신 food.png_x로 표시합니다. 이 문제를 어떻게 해결할 수 있습니까? –

관련 문제