【发布时间】:2020-08-07 00:18:30
【问题描述】:
我在为目录中的文件输出时间戳时遇到问题。想要列出到达某个时间窗口的时间戳,目前甚至无法获得输出。不知道我做错了什么并撞墙了自动取款机
from datetime import datetime, timedelta
from os import scandir
DIR = "/home/user/directory"
TIME_FORMAT = "%Y-%m-%d%H:%M:%S.%fZ"
def convert_timestamps():
"""converting timestamps to human readable"""
# timestamp = datetime.utcnow() - timedelta(days=7)
timestamp = datetime.utcfromtimestamp
file_times = timestamp.strftime(TIME_FORMAT)
return file_times
def get_files():
"""getting files from dir"""
dir_filenames = scandir(DIR)
for filename in dir_filenames:
if filename.is_file():
file_stat = os.stat(str(filename))
# info = os.stat(filename)
print("Last Modified time: {}".format(filename.name, convert_timestamps(file_stat.st_mtime)))
if __name__ == 'main':
get_files()
下面的sn-p可以工作,但显然不是什么程序
DIR = "/home/user/directory"
TIME_FORMAT = "%Y-%m-%d%H:%M:%S.%fZ"
file_stat = os.stat(DIR)
timestamp = datetime.utcnow() - timedelta(days=7)
file_times = timestamp.strftime(TIME_FORMAT)
print("Last mod time are: ", file_times)
【问题讨论】:
-
您的运行的 sn-p 根本不使用
file_stat变量。目录中是否还有文件,scandir是否在对其进行迭代? -
你说得对,这是我的先见之明。是的,目录中有文件,没有 scandir 似乎不起作用
标签: python python-3.x datetime unix-timestamp