python - 日期排序文件选择程序
问题描述
我想使用 python 脚本对文件夹中的一堆文件执行一些统计计算。
到目前为止,我能够选择整个文件夹,对文件进行排序并执行我的计算。
def numericalSort(value):
parts = numbers.split(value)
parts[1::2] = map(int, parts[1::2])
return parts
for infile in sorted(glob.glob('*.txt'), key=numericalSort):
if infile == "log.txt":
continue
print "Current File Being Processed is: " + infile
log.write("~~File " + infile + " has been Opened Succesfully \n")
with open(infile, "r") as f:
next(f)
#print "file has been opened" + infile
for line in f:
现在我想做的是让用户输入初始日期和结束日期,并在选定的时间间隔内执行相同的操作。
文件命名如下
countlog-2018-06-09.txt
有任何想法吗?
解决方案
使用input
标志写入标准输入。您可能还想执行输入验证。这是一些您可以适应您的要求的代码。
import re
from datetime import datetime
date_format = '%Y-%m-%d'
date_regex = r'([12]\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\d|3[01]))'
def validate_date_input(date_type='start'):
while True:
start_date = input('Enter a valid {} date in format YYYY-MM-DD\n'.format(date_type))
try:
date = datetime.strptime(start_date, date_format)
except ValueError:
print('"{}" is not in format YYYY-MM-DD. try again\n'.format(start_date))
else:
return date
if __name__ == '__main__':
start_date = validate_date_input(date_type='start')
end_date = validate_date_input(date_type='end')
file_name = 'countlog-2018-06-09.txt'
file_re = re.search(date_regex, file_name)
file_date = datetime.strptime(file_re.group(0), date_format)
if start_date <= file_date <= end_date:
print('Working on {}'.format(file_name))
推荐阅读
- python - 使用 Selenium 抓取时出现 StaleElementReferenceException 问题
- oop - 状态模式:基于多个字段以及它们的值和状态值之间的一致性来更改对象行为
- android - Android IllegalArgumentException:fragment_XXX 的标签无效。收到:layout-sw600dp/fragment_XXX_0
- python - Excel 数据中特定单元格的 if 语句
- c++ - 从 QtCreator 中的 .pro 文件更改运行环境路径
- android - 如何修复/转移 Android R 的 TextInputEditText 的移位行为
- docker - 我们如何为 Docker Hub 中的 docker 镜像名称实现自动完成?
- html - 使图像响应
- python - Django Rest 框架:创建 API
- javascript - 在 Angular 中出现 Dom 元素时监听