반응형
이것은 내 코드에서 발췌 한 것입니다.
import os, time
from datetime import datetime, timedelta
def processData1( pageFile ):
f = open(pageFile, "r")
page = f.read()
filedate = time.strftime('%m/%d/%Y', time.gmtime(os.path.getmtime(pageFile)))
print filedate
end_date = filedate - datetime.timedelta(days=10)
print end_date
filedate
인쇄가 작동하므로 파일에서 날짜를 올바르게 읽습니다. 작동하지 않는 것은 빼기 비트입니다.
원하는 출력 :
filedate
가 06/11/2013 인 경우 print end_date
는 06/01/2013
을 산출해야합니다.
해결 방법
따라서 filedate
는 실제로 문자열입니다. +
또는 -
에서 datetime.timedelta code>를 얻으려고하면 오류가 발생합니다. 예 -
In [5]: s = time.strftime('%m/%d/%Y', time.gmtime(time.time()))
In [6]: s
Out[6]: '09/01/2015'
In [8]: s - datetime.timedelta(days=10)
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-8-fb1d19ed0b02> in <module>()
----> 1 s - datetime.timedelta(days=10)
TypeError: unsupported operand type(s) for -: 'str' and 'datetime.timedelta'
그리고 원하는 최종 결과가 실제로 문자열 인 경우 datetime.strftime ()
을 사용하여 필요한 형식의 문자열로 변환 할 수 있습니다. 예 -
import os
from datetime import datetime, timedelta
def processData1( pageFile ):
f = open(pageFile, "r")
page = f.read()
filedate = datetime.utcfromtimestamp(os.path.getmtime(pageFile)))
print filedate
end_date = filedate - timedelta(days=10)
print end_date #end_date would be a datetime object.
end_date_string = end_date.strftime('%m/%d/%Y')
print end_date_string
참조 페이지 https://stackoverflow.com/questions/32334312
반응형
'파이썬' 카테고리의 다른 글
파이썬 다양한 깊이의 중첩 사전 값 업데이트 (0) | 2020.11.19 |
---|---|
파이썬 Python : 목록 개체에서 공백 제거 (0) | 2020.11.19 |
파이썬 py2exe가 실행 파일을 생성하지 못함 (0) | 2020.11.18 |
파이썬 날짜 시간 열을 가장 가까운 분기 시간으로 반올림하는 방법 (0) | 2020.11.18 |
파이썬 Python : 유니 코드 이스케이프 처리 된 문자열에 .format () 사용 (0) | 2020.11.18 |
댓글