我是一个使用python 3.6脚本的新手,根据他们的命名约定(YYYYMMDD.rar),我无法弄清楚如何在目录中找到最新文件。有小费吗?谢谢!
答案 0 :(得分:1)
这是一个代码示例,作为如何解决此问题的提示。
我假设以YYYYMMDD.rar
格式指定的日期始终是有效日期。
import os
from datetime import datetime
def is_correct_file_format(text):
"""
Checks if a specified text input is of the correct
datetime format %Y%m%d.
"""
try:
return datetime.strptime(text, '%Y%m%d.rar')
except ValueError:
print(text, "is in wrong file format")
return False
def get_list_of_datetime_files():
"""
Main function. Goes through the files in a directory (the same
folder that contains this .py script) and returns a list of
file names that correspond to the format %Y%m%d.rar given in
the function is_correct_file_format(text).
"""
list_of_files_in_dir = os.listdir()
return list(filter(is_correct_file_format, list_of_files_in_dir))
# WORKS for:
# 20180117.rar, 20180118.rar, 20150217.rar, etc.
#
# BUT NOT:
# somefile.rar, somefile.py, 201801.rar, 2018010.rar, 201801171.rar
print(list(get_list_of_datetime_files()))
简短说明:
模式%Y%m%d
对strptime
函数的含义细分:
除了使用strptime
模块中的datetime
功能外,您可能还想探索它对日期格式YYYYMMDD
here的限制。在这个例子中,为了简单起见,我只使用了strptime
。
os.listdir(path_to_some_directory)
返回一个列表,其中包含路径path_to_some_directory
指定的目录中的条目名称。我希望这对你开始有用。