码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • python_剔除符合要求的数据并生成新的文件


    遍历目录下,将GGA文件中符合要求(起始-截止的字符串)的数据剔除掉,生成新的文件。

    1. import os
    2. import fnmatch
    3. import shutil
    4. import re
    5. import datetime
    6. def find_files(directory, pattern):
    7. for root, dirs, files in os.walk(directory):
    8. for filename in fnmatch.filter(files, pattern):
    9. yield os.path.join(root, filename)
    10. # 调用函数,查找所有包含 'xxx' 的文件
    11. def write_file(path_copy, path_copy_ex, pattern_start, pattern_end):
    12. with open(path_copy, 'r') as dst, open(path_copy_ex, 'w') as dst_w:
    13. # 默认写入文件
    14. writing = True
    15. num_count = 0
    16. for line in dst:
    17. # 正则匹配,起始行
    18. if re.search(pattern_start, line) and line.startswith('$GPZDA'):
    19. writing = False
    20. if writing:
    21. num_count += 1
    22. dst_w.write(line)
    23. # 正则匹配,截止行
    24. if re.search(pattern_end, line): # and line.startswith('$GPGGA'):
    25. writing = True
    26. # break
    27. if num_count == 0:
    28. print(r'当前时间:%s,没有数据匹配' % (datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S')))
    29. else:
    30. print(r'当前时间:%s,总共%s行写入完成,起始于:%s,截止于:%s' % (
    31. datetime.datetime.now().strftime('%Y-%m-%d %H:%M:%S'), num_count, pattern_start, pattern_end))
    32. if __name__ == '__main__':
    33. directory = r"E:\data\日志文件第三组"
    34. # 匹配的起始截止字符
    35. pattern_start = "033040.00"
    36. pattern_end = "033140.00"
    37. for file_path in find_files(directory, "*gga*"):
    38. # 获取文件名称和文件路径
    39. file_path_base = os.path.basename(file_path)
    40. file_path_dir = os.path.dirname(file_path)
    41. # 拼接复制的文件名
    42. filename_new = "new_" + file_path_base
    43. path_copy = os.path.join(file_path_dir, filename_new)
    44. # 先复制文件
    45. shutil.copy2(file_path, path_copy)
    46. # 拼接处理(剔除)后的文件名
    47. filename_new_ex = "ex_" + file_path_base
    48. path_copy_ex = os.path.join(file_path_dir, filename_new_ex)
    49. # 匹配数据写入新文件
    50. write_file(path_copy, path_copy_ex, pattern_start, pattern_end)
    51. # 删除复制的文件
    52. if path_copy:
    53. os.remove(path_copy)

  • 相关阅读:
    Vue3问题:如何实现密码加密登录?前后端!
    Vue项目实战之人力资源平台系统(一)框架介绍及项目环境搭建
    2023年PMP超全报考指南,速速收藏!
    Gradle 使用maven本地仓库 带来的思考
    Halcon知识:用分箱实现OCR分类器
    Meta Llama 3 简介
    小公司比较吃亏的两道微服务面试题
    Python 操作Mysql
    极智Paper | 性能数据炸裂的多模态模型BEiT-3:Image as a Forign Language
    java基于springboot+vue网上图书商城 销售+借阅两种模式 nodejs前后端分离
  • 原文地址:https://blog.csdn.net/ramsey17/article/details/134437418
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号