2014-08-27 7 views
0

그래서 나는 csv 파일에 소수를 쓰는 python 프로그램을 가지고있다. 나는 파이썬 파일이 모든 것을 실행 한 후에 자체 파일의 복사본을 만들 것을 원한다. 원래 파일로 주위를 팅크 할 때의 백업 파일이다.shutil을 사용하여 계산을 수행 한 후에 python 파일 복사 자체를 만드는 방법은 무엇입니까?

저는 파이썬 프로그램이 새로운 .py 파일을 만들고 내부에 모든 것을 쓰게함으로써 이것을 지금까지 알지 못하고 있습니다.하지만 이것은 비효율적입니다. 나는 그것을 더 깨끗하고 덜 복잡하게하고 싶다.

나는 shutil.copyfile을 사용하는 것에 대해 조금 들었지만 사용 방법에 대해서는 확신이 없습니다. shutil.copyfile은 파이썬 파일 복사 자체를 만드는 가장 좋은 방법입니까, 아니면 더 좋은 방법입니까?

+1

는'Git' http://en.wikipedia.org/wiki/Git_%28software%29 – Vor

+0

당신이 시도 되세요'shutil.copy (__ FILE__를 살펴 보자 : 그렇지 않으면

이 질문에 대답하기 , "destination.py")'? –

+0

프로그램 자체를 복사하지 마십시오. @Vor가 제안한대로 실제 백업 전략을 사용하거나 더 나은 버전의 힘내 관리 시스템을 사용하십시오. –

답변

1

개정 관리 소프트웨어는이 문제를 해결하기위한 것입니다. 즉, 이전 파일의 사본을 보관하는 것입니다. 그렇게하면 원본 폴더가 실제로 복잡해집니다. Mercurial/Hg는 really easy to learn이고 사용법은 파이썬으로 작성되었습니다.

shutil.copy(__file__, "new_destination.py") 
+0

abspath는 필요하지 않지만 더 큰 문제는'__file__'이 .pyc 파일 일 가능성이 높다는 것입니다. .py 파일을 얻으려면이를 자르고 싶을 것입니다. – tdelaney

+0

@tdelaney 현재 작업 디렉토리에 따라 다릅니다. 파일이있는 경로 안에 있으면 .py 파일에 대한 상대 경로 만 반환됩니다. http://stackoverflow.com/questions/7116889/python-file-attribute-absolute-or-relative –

+0

@Thimble을 참조하십시오. 파일 이름이 항상 절대적인 것은 아닙니다. 그러나 파일을 복사하는 데 절대적인 파일 이름이 필요하지 않습니다. – tdelaney