python - 根据是否每天输入,将输入日志 (csv) 转换为名称列表
问题描述
我有一个来自安全系统的原始打印输出,它记录和记录系统采取的行动。
设施经理想要一份报告,其中包含基于当天是否输入的姓名列表。
即
17/1/2019
John Smith
Beth Hook
16/1/2019
等。
CSV 文件:https
://drive.google.com/open?id=1ABj1gxFG-1j41jai6_TjXsezHXvd2qQL
*名称已更改以保护客户的身份
它已经提供了用户名,所以我认为步骤是:
- 获取日期
- 检查名称
- 如果为空,则忽略
- 否则,检查名称数组
- 如果不存在,添加到数组
- 否则,忽略
- 重复
可以为每一天导出一个 CSV,这样程序就不必一次解释多个日期。
我不知道如何使用似乎是大多数解决方案的 python,因此非常感谢任何帮助。虽然我真的不介意它是什么语言或者我是否需要安装其他程序。
提前致谢。
解决方案
使用 Miller ( http://johnkerl.org/miller/doc ) 一个命令行实用程序,
mlr --csv filter '$User=~".+"' then cut -o -f Date,User \
then uniq -a "Example Report.csv" | \
mlr --csv --headerless-csv-output nest --implode --values --across-records -f User | \
sed -r 's/(,|;)/\n/g'
你有
17/1/19
Beth Hook
CEO
John Smith
16/1/19
Peter Man
Jess Hare
Finn Tomb
John Smith
Finance
15/1/19
CEO
Peter Man
member 34
Beth Hook
John Smith
14/1/19
SYSTEM USER
Bin Stick
Peter Man
CEO
Partner
L Stick
Tie Cooler
member 16
John Smith
13/1/19
Partner
Peter Man
11/1/19
Wheels Hireman
Bunny
10/1/19
Bunny
member 36
Mary Stone
9/1/19
Bunny
Jus Wall
member 36
推荐阅读
- javascript - React - 单击时更改图像 - 重构
- python - Python非贪婪正则表达式返回贪婪匹配
- c++ - 这个成员函数声明是什么?
- data-structures - B树节点内的嵌套平衡树?
- python - Django3 - manage.py 命令卡住
- android - 如何让 android 应用程序选择默认的 pdf 文件查看器选择作为驱动器?
- angular - 为什么共享管道发送两个相同的请求?
- angular - Angular Material cdk-virtual-scroll-viewport 在内容更新时无法正确滚动
- java - 如何通过 Intent 在设置中打开 android 默认应用程序活动?
- python - 如何将两个 keras 模型连接到一个模型中?