【办公自动化】用Python按时间分割txt文件中的数据

简介: 【办公自动化】用Python按时间分割txt文件中的数据

一、Python处理txt


  • Python处理txt的好处


  1. 文本分析和挖掘:Python可以用于对文本数据进行分析、挖掘和处理,从中提取有用的信息,例如情感分析、关键字提取、主题建模等。


  1. 自动化文本处理:Python可以自动化文本处理任务,如批量处理文档、搜索和替换文本、转换文本格式等。这对于提高工作效率非常有帮助。


  1. 文本清洗:Python可以用于清洗文本数据,去除不需要的字符、空格、标点符号和特殊字符,以准备数据用于进一步分析。


  1. 文本预处理:在进行自然语言处理(NLP)任务之前,通常需要对文本进行预处理,例如分词、停用词移除、词干提取等。Python提供了许多库和工具来执行这些任务。


  1. 自定义文本操作:Python允许你根据需要自定义文本操作。你可以编写自己的文本处理函数或脚本,以满足特定的需求。


  1. 文本生成:Python可以用于生成文本,例如自动生成报告、文章、电子邮件等。你可以使用模板和变量来个性化生成的文本。


  1. 文本可视化:Python的各种数据可视化库可以用于将文本数据可视化,例如制作词云图、文本热图、词频分布图等。


  1. 文本搜索:Python可以用于文本搜索和匹配,帮助你查找特定的文本模式或关键字。


  1. 与外部数据源的集成:Python可以轻松与数据库、API和其他数据源集成,以获取、处理和存储文本数据。


  1. 跨平台:Python是跨平台的,可以在多个操作系统上运行,因此你可以在不同环境中处理文本数据。


  • Python处理txt的基本方法步骤 :


1.打开文件:首先,你需要打开文本文件以便读取或写入内容。你可以使用内置的open()函数来打开文件。

# 打开文件以读取内容
with open('example.txt', 'r') as file:
    content = file.read()
# 打开文件以写入内容
with open('output.txt', 'w') as file:
    file.write('Hello, World!')


2.读取文件内容:如果你需要读取文件的内容,可以使用read()方法来读取整个文件的内容,或者使用readline()readlines()方法逐行读取。

with open('example.txt', 'r') as file:
    content = file.read()  # 读取整个文件内容
    # 或者逐行读取
    lines = file.readlines()
    for line in lines:
        print(line)


3.写入文件内容:如果你需要向文件中写入内容,可以使用write()方法将文本写入文件。

with open('output.txt', 'w') as file:
    file.write('Hello, World!')


4.关闭文件:一定要在完成文件操作后关闭文件,以释放资源并确保文件的正确保存。

file.close()


5.文本处理:一旦你读取了文本,你可以使用Python的字符串操作来处理文本数据。这包括分词、文本清洗、正则表达式匹配、字符串替换等。

# 分割文本为单词
words = content.split()
# 清洗文本,去除标点符号和特殊字符
import re
cleaned_text = re.sub(r'[^\w\s]', '', content)
# 使用正则表达式查找特定模式
pattern = r'\b\d{3}-\d{2}-\d{4}\b'  # 查找美国社会安全号码
matches = re.findall(pattern, content)
# 字符串替换
replaced_text = content.replace('old_word', 'new_word')


6.写入处理后的文本:一旦你完成了文本处理,你可以将处理后的文本写回文件。

with open('output.txt', 'w') as file:
    file.write(processed_text)


 这些是处理文本文件的基本方法。你可以根据具体的需求来组合和定制这些方法,以满足你的文本处理任务。在处理大量文本数据时,通常需要考虑内存管理和性能优化,但上述步骤是基础的文本文件处理方法。


二、用Python按时间分割txt文件中的数据


技术工具:


Python版本:3.9


代码编辑器:jupyter notebook


有一个监测系统,每隔两分钟就会记录一下监测结果,如下图所示:


现在要求按小时将数据提取,并存为新的txt文件,也就是1天会对应有24个txt文件。先整理一下思路:


1. 读取数据

2. 将每行数据的时间戳转换成“日期-小时”格式,并按此分类数据,存入字典

3. 按“日期-小时”分断,将写入数据到新的txt文件


使用`readlines()`将txt中的每一行数据读取为一个长字符串,并存入列表。数据读取如下所示。

#读取txt文件中的数据
file = open('data.txt')
lines = file.readlines()
lines[:5]


然后定义一个将时间戳转换成“日期 时间”格式的函数,以便后续调用。先导入`time, datetime`模块。`time.localtime`用于将时间戳格式化为本地时间,这样就获得一个时间序列(比如如下打印结果)。然后用`time.strftime`从时间序列中提取出我们设定的格式。此处设定的格式为`%Y-%m-%d %H`,对应年,月,日和小时。尝试调用了一下函数`timeStampToDate(1480581236)`,结果`'2016-12-01 16'`符合我们的要求。  

import time, datetime
def timeStampToDate(timeStamp):
    timeArray = time.localtime(timeStamp)
    return time.strftime("%Y-%m-%d %H", timeArray)
print("转换后的时间序列如下:\n")
timeStamp = 1480581236
timeArray = time.localtime(timeStamp)
timeArray = print(timeArray)
timeStampToDate(1480581236)


然后按“日期 小时”格式提取数据,并存入字典`data`。比如将时间是这个`2016-12-01 16`的所有数据都集中存放。此处,我们按`2016-12-01 16`为字典的键,这个时间对应的所有行都作为列表存为它的值。由于从txt文件中读取的数据是一行对应一个字符串,所以需要先分割。在txt文件中,各字段是按空格分隔的,所以此处也以空格分割,即`split(" ")`。然后调用时间戳转换函数`timeStampToDate()`将列表`row_data`中的第三个数据(时间戳)转换成设定的日期-时间格式。随后将获取到的“日期-时间”设定为字典中的键的默认值,其值为一个空列表。这样才能保证后续获取到的相同“日期-时间”的数据都集中到它的麾下。数据获取完后用`data`查看一下数据,显示正常。  

#按日期-小时提取数据,并存入字典
data = {}
for line in lines:
    row_data =line.split(" ") #将一行数据按空格分隔
    date_hour = timeStampToDate(int(row_data[2])) #将第三个数据(时间戳)转换成设定的日期-时间格式
    data.setdefault(date_hour,[]) #以日期-时间为键,相同日期-时间的数据存为它的值
    data[date_hour].append(row_data) #数据存入data字典
data


然后就准备写入数据了。由于需要写入N次,还是建立一个函数,重复调用比较方便。需要给函数传入两个参数,一个是文件名,另一个是包含数据的列表。文件名直接使用字典`data`的键,也就是要求的“日期 时间”,比如`2016-12-01 16`。`+ '.txt'`用于手动加上后缀。`a`表示添加模式,不会影响已写入的数据。由于传入的列表是个双层嵌套列表,所以需要遍历两次,才能提取到最终的数据。提取到数据后,为避免各个数据挨在一起,需要在每个数据之间插入空格。但每行最后一个数据不用插入了,因为最后一个数据带了换行符`\n`,加上空格,就会导致下一行的数据前面都有一个空格。因此如下程序用`if`语句做了限制,只有当元素不是最后一个元素,才在后面插入空格。  

#写入数据函数
def To_txt(filename, data):#filename为写入文件的路径,data为要写入数据列表.
    file = open(filename + '.txt','a')
    for i in range(len(data)):
        for j in range(len(data[i])):
            text = data[i][j]
            if j != len(data[i])-1: #判断是否最后一个元素
                text = text+' '   #若不是最后一个元素才加空格
            file.write(text)
    file.close()

写入函数写好后,就可以批量写入数据了。遍历字典`data`的所有键,调用写入函数写入即可。结果如下。


三、往期推荐


Python提取pdf中的表格数据(附实战案例)

使用Python自动发送邮件

Python操作ppt和pdf基础

Python操作word基础

Python操作excel基础

使用Python一键提取PDF中的表格到Excel

使用Python批量生成PPT版荣誉证书

使用Python批量处理Excel文件并转为csv文件

目录
相关文章
|
2月前
|
搜索推荐 Python
使用Python自动化生成物业通知单
本文介绍如何使用Python结合Pandas和python-docx库自动化生成物业通知单。通过读取Excel数据并填充至Word模板,实现高效准确的通知单批量制作。包括环境准备、代码解析及效果展示,适用于物业管理场景。
88 14
|
2月前
|
数据采集 数据可视化 数据挖掘
利用Python自动化处理Excel数据:从基础到进阶####
本文旨在为读者提供一个全面的指南,通过Python编程语言实现Excel数据的自动化处理。无论你是初学者还是有经验的开发者,本文都将帮助你掌握Pandas和openpyxl这两个强大的库,从而提升数据处理的效率和准确性。我们将从环境设置开始,逐步深入到数据读取、清洗、分析和可视化等各个环节,最终实现一个实际的自动化项目案例。 ####
314 10
|
2月前
|
Python
自动化微信朋友圈:Python脚本实现自动发布动态
本文介绍如何使用Python脚本自动化发布微信朋友圈动态,节省手动输入的时间。主要依赖`pyautogui`、`time`、`pyperclip`等库,通过模拟鼠标和键盘操作实现自动发布。代码涵盖打开微信、定位朋友圈、准备输入框、模拟打字等功能。虽然该方法能提高效率,但需注意可能违反微信使用条款,存在风险。定期更新脚本以适应微信界面变化也很重要。
213 61
|
3月前
|
数据采集 监控 数据挖掘
Python自动化脚本:高效办公新助手###
本文将带你走进Python自动化脚本的奇妙世界,探索其在提升办公效率中的强大潜力。随着信息技术的飞速发展,重复性工作逐渐被自动化工具取代。Python作为一门简洁而强大的编程语言,凭借其丰富的库支持和易学易用的特点,成为编写自动化脚本的首选。无论是数据处理、文件管理还是网页爬虫,Python都能游刃有余地完成任务,极大地减轻了人工操作的负担。接下来,让我们一起领略Python自动化脚本的魅力,开启高效办公的新篇章。 ###
|
2月前
|
Python Windows
Python实现常用办公文件格式转换
本文介绍了如何使用Python及其相关库(如`pandas`、`openpyxl`、`python-docx`等)实现办公文件格式间的转换,包括XLS转XLSX、DOC转DOCX、PPT转PPTX、Word转PDF及PDF转Word,并提供了具体代码示例和注意事项。
208 89
|
1月前
|
机器学习/深度学习 运维 数据可视化
Python时间序列分析:使用TSFresh进行自动化特征提取
TSFresh 是一个专门用于时间序列数据特征自动提取的框架,支持分类、回归和异常检测等机器学习任务。它通过自动化特征工程流程,处理数百个统计特征(如均值、方差、自相关性等),并通过假设检验筛选显著特征,提升分析效率。TSFresh 支持单变量和多变量时间序列数据,能够与 scikit-learn 等库无缝集成,适用于大规模时间序列数据的特征提取与模型训练。其工作流程包括数据格式转换、特征提取和选择,并提供可视化工具帮助理解特征分布及与目标变量的关系。
76 16
Python时间序列分析:使用TSFresh进行自动化特征提取
|
2月前
|
存储 人工智能 人机交互
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
PC Agent 是上海交通大学与 GAIR 实验室联合推出的智能 AI 系统,能够模拟人类认知过程,自动化执行复杂的数字任务,如组织研究材料、起草报告等,展现了卓越的数据效率和实际应用潜力。
225 1
PC Agent:开源 AI 电脑智能体,自动收集人机交互数据,模拟认知过程实现办公自动化
|
1月前
|
存储 安全 数据可视化
用Python实现简单的任务自动化
本文介绍如何使用Python实现任务自动化,提高效率和准确性。通过三个实用案例展示:1. 使用`smtplib`和`schedule`库自动发送邮件提醒;2. 利用`shutil`和`os`库自动备份文件;3. 借助`requests`库自动下载网页内容。每个案例包含详细代码和解释,并附带注意事项。掌握这些技能有助于个人和企业优化流程、节约成本。
70 3
|
2月前
|
JSON 数据可视化 测试技术
python+requests接口自动化框架的实现
通过以上步骤,我们构建了一个基本的Python+Requests接口自动化测试框架。这个框架具有良好的扩展性,可以根据实际需求进行功能扩展和优化。它不仅能提高测试效率,还能保证接口的稳定性和可靠性,为软件质量提供有力保障。
100 7
|
2月前
|
Android开发 开发者 Python
通过标签清理微信好友:Python自动化脚本解析
微信已成为日常生活中的重要社交工具,但随着使用时间增长,好友列表可能变得臃肿。本文介绍了一个基于 Python 的自动化脚本,利用 `uiautomator2` 库,通过模拟用户操作实现根据标签批量清理微信好友的功能。脚本包括环境准备、类定义、方法实现等部分,详细解析了如何通过标签筛选并删除好友,适合需要批量管理微信好友的用户。
109 7

热门文章

最新文章