Skip to content

Instantly share code, notes, and snippets.

@w495
Created February 24, 2014 11:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save w495/9186914 to your computer and use it in GitHub Desktop.
Save w495/9186914 to your computer and use it in GitHub Desktop.
# !/usr/bin/python
# --*-- coding: utf-8 --*--
import os
import time
from datetime import date, timedelta
FILE_NAME = '1.txt'
DAYS_AGO = {
'atime' : 2,
'mtime' : 4
}
##
## Получим информацию о файле
##
stinfo = os.stat(FILE_NAME)
print()
print("\033[36m stinfo = %s \033[0m \n"%{stinfo})
##
## Покажем atime и mtime
##
print ("\033[1m atime (unixtime) = %s \033[0m " %stinfo.st_atime)
print ("\033[1m mtime (unixtime) = %s \033[0m " %stinfo.st_mtime)
print()
##
## Объект "Текущая дата".
##
tobay = date.today()
##
## Объект "Разница во времени"
##
adelta = timedelta(days = DAYS_AGO['atime'])
mdelta = timedelta(days = DAYS_AGO['mtime'])
##
## Объект "Новая дата"
##
target_atime = (tobay - adelta)
target_mtime = (tobay - mdelta)
print("\033[32m target_atime = %s \033[0m " %target_atime)
print("\033[32m target_mtime = %s \033[0m " %target_mtime)
print()
##
## Архаичный формат даты, в виде кортежа.
##
target_atimetuple = target_atime.timetuple()
target_mtimetuple = target_mtime.timetuple()
print("\033[33m target_atimetuple = %s \033[0m " %{target_atimetuple})
print("\033[33m target_atimetuple = %s \033[0m " %{target_mtimetuple})
print()
##
## Количество секунд с начала эпохи Unix (unixtime).
##
new_atime = time.mktime(target_atimetuple)
new_mtime = time.mktime(target_mtimetuple)
print("\033[35m new_atime (unixtime) = %s \033[0m " %new_atime)
print("\033[35m new_mtime (unixtime) = %s \033[0m " %new_mtime)
print()
##
## Изменим atime и mtime
##
os.utime("1.txt",(new_atime, new_mtime))
## Можно было сразу так:
## os.utime("1.txt",(1392926400, 1384545600))
##
print("\033[7m done. \033[0m ")
print()
##
## Опять получим информацию о файле
##
stinfo = os.stat(FILE_NAME)
##
## Покажем atime и mtime
##
print("\033[1m atime (unixtime) = %s \033[0m " %stinfo.st_atime)
print("\033[1m mtime (unixtime) = %s \033[0m " %stinfo.st_mtime)
print()
print("\033[7m ok. \033[0m ")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment