第一次写python的小程序

news/2024/5/19 22:09:08 标签: python, PyInstaller, 文件编码格式, 时间戳转换

功能:遍历目录下的所有txt文件将*和-之间的时间戳转换为rtc时间

# -*- coding: UTF-8 -*-

import sys
import re
import os
import shutil
import argparse
import datetime
import chardet

def get_encoding(file):
    with open(file, 'rb') as f:
      data = f.read()
      return chardet.detect(data)['encoding']

def main():
    path = os.path.abspath("./")
    path_rtctime = os.path.join(path, "rtctime_log")
    if os.path.exists(path_rtctime):
        shutil.rmtree(path_rtctime)
    os.mkdir(path_rtctime)
    files = os.listdir(path)
    for file in files:
        src = os.path.join(path, file)
        if os.path.isfile(src) and src.split('.')[-1].lower() == 'txt':
            dst = os.path.join(path_rtctime, file)
            with open(dst, 'a', encoding='utf-8') as f_write:
                f_write.truncate(0)
                encoding_format = get_encoding(src)
                with open(src, 'r', encoding=encoding_format) as f_read:
                    line = f_read.readline()
                    while line:
                        match = re.findall(r'(?<=\*).+?(?=\-)', line)
                        if match:
                            temp = match[0]
                            if temp.isdigit() and len(temp)==14:
                                rtctime = str(datetime.datetime.fromtimestamp(int(temp[1:11]))) + '.' + temp[11:]
                                #print(line.replace(temp, rtctime))
                                f_write.write(line.replace(temp, rtctime))
                            else:
                                f_write.write(line)
                        else:
                            f_write.write(line)
                        line = f_read.readline()
            
if __name__ == "__main__":
     sys.exit(main()) 

python脚本生成exe可执行程序:

安装pyinstaller:pip install pyinstaller

由于找不到pyinstaller命令,所以执行下面的命令来使用pyinstaller

pip show pyinstaller,来查找安装目录。

cd 进入到查找到的目录的PyInstaller目录。

生成exe:python __main__.py -F test.py


http://www.niftyadmin.cn/n/5140024.html

相关文章

再谈Java类和对象

&#x1f388;个人主页&#xff1a;https://blog.csdn.net/m0_73920844?typeblog &#x1f302;c/java领域新星创作者 &#x1f389;欢迎&#x1f44d;点赞✍评论❤️收藏 &#x1f61b;&#x1f61b;&#x1f61b;希望我的文章能对你有所帮助&#xff0c;有不足的地方还请各位…

PHP服务器端电商API原理及示例讲解(电商接口开发/接入)

下面小编就为大家分享一篇PHP服务器端API原理及示例讲解(接口开发)&#xff0c;具有很好的参考价值&#xff0c;希望对大家有所帮助 相信大家都做过PHP请求电商API接口获取数据&#xff0c;比如淘宝平台商品API接口&#xff0c;订单接口&#xff0c;京东接口&#xff0c;1688接…

【Flink】全网最详细4W字Flink全面解析与实践(上)

本文已收录至GitHub&#xff0c;推荐阅读 &#x1f449; Java随想录 微信公众号&#xff1a;Java随想录 原创不易&#xff0c;注重版权。转载请注明原作者和原文链接 文章目录 流处理 & 批处理无界流Unbounded Streams有界流Bounded Streams Flink的特点和优势Flink VS Spa…

『VUE - 车牌号软键盘』

一、需求描述 在 VUE2 Vant2 的项目中&#xff0c;实现 车牌号软键盘 的功能。 二、引入全局组件 引入封装好的 vant-number-plate 组件&#xff0c;整个文件夹放在 src/components 里面&#xff1a; git clone https://gitee.com/csheng-gitee/vant-number-plate.git三、具…

软考高级系统架构设计师系列之:系统开发基础知识、项目管理、信息安全和网络安全、计算机网络章节选择题详解

软考高级系统架构设计师系列之:系统开发基础知识、项目管理、信息安全和网络安全、计算机网络章节选择题详解 一、产品配置二、需求管理三、需求跟踪四、软件生命周期五、RUP六、耦合与内聚七、软件文档八、软件需求九、软件活动十、项目时间管理十一、需求管理十二、项目范围…

【开题报告】基于SpringBoot的研究生管理系统的设计与开发

1.研究背景 研究生教育是高等教育体系中的重要组成部分&#xff0c;对于培养高层次、高水平的专业人才和推动科学研究具有重要意义。研究生管理是保证研究生培养质量和提升研究生培养工作效率的关键环节。然而&#xff0c;传统的研究生管理方式存在一些问题&#xff0c;如信息…

http代理和ip代理的区别,代理IP带来了哪些好处?

目录 一、引言 二、HTTP代理与IP代理的区别 三、代理IP的好处 四、实际应用与代码示例 五、如何选择合适的代理IP服务 六、注意事项 总结 一、引言 在互联网应用中&#xff0c;代理服务器扮演着重要角色。其中&#xff0c;HTTP代理和IP代理是两种常见的代理方式。本文将…

JMeter组件

1.JMeter常用组件 必须组件&#xff1a;测试计划&#xff0c;线程组&#xff08;包含多个线程&#xff09;&#xff0c;取样器 测试计划&#xff0c;JMeter默认创建且仅有一个 线程组&#xff1a; 添加步骤&#xff1a; 选择TestPlan并点击鼠标右键添加 分类以及使用&…