2012-05-15 3 views
73
여기

내가 현재 날짜 시간으로 파일 이름을 시도하고파이썬에서 현재 날짜와 시간으로 파일 이름을 만드는 방법은 무엇입니까?

이제
sys.stdout = open('filename1.xml', 'w') 

(I 파이썬의 전문가가 아니에요) (성공 파일을 만듭니다) 기능 코드

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S") 
sys.stdout = open(filename1 + '.xml', 'w') 

정확한 날짜와 시간을 가진 파일 이름을 쓰고 싶습니다. 프로그램이 이미 만든 xml 파일이므로 파일 이름을 지정하면됩니다. 위의 코드가 작동하지 않습니다.

[EDITED] -이 오류는 datetime를 사용하지 않는 동안

File "./fix.py", line 226, in <module> 
    filenames = datetime.now().strftime("%Y%m%d-%H%M%S") 
AttributeError: 'module' object has no attribute 'now' 
+0

'filename'과'datetime' 사이에'='가 필요합니다. –

+0

그 외, "위 코드가 작동하지 않습니다"는 정확히 어떻게됩니까? –

+0

이와 같은 질문을 할 때 "작동하지 않음"으로는 충분하지 않습니다. 그것이 어떻게 실패하는지 정확하게 설명하십시오. –

답변

160

반환이 지정한 현재 시간 및 날짜 형식의 문자열을 받고의 문제 (당신의 질문에 대한 대답을) 해결 :

import time 
timestr = time.strftime("%Y%m%d-%H%M%S") 
print timestr 

수율 :

20120515-155045 
,536,

파일 이름에이 문자열을 추가하거나 사용할 수 있습니다.

+1

Gotcha! 시간이 내 스크립트에서 정의되지 않았고 시간 분석을 사용하려고했으나 (작동하지 않음, 이유가 없음) 시간이 지남에 따라 파일 이름이 성공적으로 만들어졌습니다. 정말 고맙습니다! – B4NZ41

+2

질문에있는 코드에 무엇이 잘못되었는지 완벽하게 설명하는 두 가지 대답이있을 때 왜이 대답을 수락했는지 모르겠습니다. Levon이했던 방식에 위배되는 것은 아무 것도 없습니다.하지만 제대로 작동하지 않습니다.하지만 "작동하지 않으면 왜 그런지 모르겠습니다"라는 이유를 설명하는 답변이 있기 때문에 이상하게 보입니다. –

+0

위 코드를 시도했을 때 "E AttributeError : 'int'객체에 'strftime'속성이 없습니다. – rwbyrd

26

now은 모듈 datetime에있는 datetime 클래스의 클래스 메소드입니다. 그래서 당신은

datetime.datetime.now() 

이 필요하거나 다른 수입이 방법을 사용하면 문제의 코드에 따라 datetime.now을 사용할 수 있습니다 완료

from datetime import datetime 

를 사용할 수 있습니다.

+0

반품 해 주셔서 감사합니다! – B4NZ41

+0

+1 다른 수입에 대해서도, 내가 쓴 것이 무엇이겠습니까. –

14

변경

filename1 = datetime.datetime.now().strftime("%Y%m%d-%H%M%S") 

참고 여분의 datetime이 라인

filename1 = datetime.now().strftime("%Y%m%d-%H%M%S") 

. 또한, import datetime 놀랍지 '파일 이름에 추가에 대한'기본 (안전)를 반환 어떤 하나의 포맷이없는

+1

감사합니다. 시간 만 사용하고 있습니다. – B4NZ41

+1

@ B4NZ41 그건 사실이 아니야. 오류 메시지는 여러분의 코드가 어딘가에'import datetime'을 가지고 있음을 분명히합니다. –

+0

;) 죄송합니다! 지금 가져 오기 날짜 시간을 사용하기 전에 가져 오기 시간을 사용 중입니다. – B4NZ41

3

from datetime import datetime하는 방법 변경 - 시간의 형식은, 우리는 간단하게 쓸 수 FD.write('mybackup'+time.strftime('%(formatter here)') + 'ext'

"%x" instead of "%Y%m%d-%H%M%S" 
+0

전혀 동의합니다. 아주 놀라운 것은 존재하지 않는다는 것입니다. 우리는 뭔가를 놓치고 있어야합니다. – Shaun

관련 문제