栏目分类:
子分类:
返回
终身学习网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
终身学习网 > IT > 软件开发 > 后端开发 > Python

python小工具

Python 更新时间:发布时间: 百科书网 趣学号

读取文件夹文件  拼接文件名 和文件内容

import os


filepath = "D:ckmsgjt"
fileHandle = open("result.txt", mode="w",encoding="UTF-8")
for file in os.listdir(filepath):
    file_path = os.path.join(filepath, file)
    print(file[:-4])
    handle = open(file_path, 'r',encoding="UTF-8")
    str = handle.read()
    fileHandle.write(file[:-4] + "t" + str + 'n')
    
fileHandle.close()

python与串口通信,网上找了一个然后改的,里面有些东西还不懂呢

import threading
import time
import serial
import requests
import re

class ComThread:
    def __init__(self, Port='COM6'):
        self.l_serial = None
        self.alive = False
        self.waitEnd = None
        self.port = Port
        self.ID = None
        self.data = None

    def waiting(self):
        if not self.waitEnd is None:
            self.waitEnd.wait()

    def SetStopEvent(self):
        if not self.waitEnd is None:
            self.waitEnd.set()
        self.alive = False
        self.stop()

    def start(self):
        self.l_serial = serial.Serial()
        self.l_serial.port = self.port
        self.l_serial.baudrate = 9600
        self.l_serial.timeout = 2
        self.l_serial.open()
        if self.l_serial.isOpen():
            self.waitEnd = threading.Event()
            self.alive = True
            self.thread_read = None
            self.thread_read = threading.Thread(target=self.FirstReader)
            self.thread_read.setDaemon(1)
            self.thread_read.start()
            return True
        else:
            return False

    def SendDate(self,i_msg,send):
        lmsg = ''
        isOK = False
        if isinstance(i_msg):
            lmsg = i_msg.encode('gb18030')
        else:
            lmsg = i_msg
        try:
            # 发送数据到相应的处理组件
            self.l_serial.write(send)
        except Exception as ex:
            pass;
        return isOK

    def FirstReader(self):
        data = ''
        data = data.encode('gbk')
        
        while self.alive:
            time.sleep(0.1)
        
            print('串口信息' + str(self.l_serial.isOpen()) + str(time.time()));
            n = self.l_serial.inWaiting()
            if n:
                 data = data + self.l_serial.read(n)
                 print('get data from serial port:', data)
                 print(type(data))
            n = self.l_serial.inWaiting()
            pattenStr = re.findall(b'rnx00x00', data, re.LOCALE)
            if len(data)>0 and n==0 and pattenStr:
                try:
                    temp = data.decode('gbk')
                    print(temp)
                    car,temp = str(temp).split(" ",1)
                    car1 = car.strip()
                    print(car1)
                    temp1 = temp.strip()
                    print(temp1)
                    self.httpmsg(car1,temp1)
                    data = ''
                    data = data.encode('gbk')
                    pattenStr = []
                except Exception as e:
                    print(repr(e))
                    print(e.__traceback__.tb_lineno)  
                    print("读卡错误,请重试!n")
        #self.ID = str_ID
        #self.data = str_data[0:-1]
        #self.waitEnd.set()
        #self.alive = False

       

    def stop(self):
        self.alive = False
        self.thread_read.join()
        if self.l_serial.isOpen():
            self.l_serial.close()
            print('串口关闭')
    def httpmsg(self,phone,msg):
        r = requests.post('http://dispatch.wukezhenzhu.com/gs/sendMsg', data = {'phone':phone,'msg':msg,'report':'13324018413'})
        print(r)
        
#调用串口,测试串口
def main():
    rt = ComThread()
    rt.sendport = '**1*80*'
    try:
        if  rt.start():
            print(rt.l_serial.name)
            rt.waiting()
            print("The data is:%s,The Id is:%s"%(rt.data,rt.ID))
            rt.stop()
        else:
            pass
    except Exception as se:
        print(str(se))

    if rt.alive:
        rt.stop()

    print('')
    print ('End OK .')
    temp_ID=rt.ID
    temp_data=rt.data
    del rt
    return temp_ID,temp_data


if __name__ == '__main__':

    #设置一个主函数,用来运行窗口,便于若其他地方下需要调用串口是可以直接调用main函数
    ID,data = main()

    print("******")
    print(ID,data)

excel转txt

import xlrd
import win32ui # 引入模块
dlg = win32ui.CreateFileDialog(1) # 参数 1 表示打开文件对话框
dlg.SetOFNInitialDir('xxxxxxxxx') # 设置打开文件对话框中的初始显示目录
dlg.DoModal()
filePath = dlg.GetPathName() # 返回选择的文件路径和名称
print(filePath)
#读取excel文件
def excel():
    wb = xlrd.open_workbook(filePath)# 打开Excel文件
    sheet = wb.sheet_by_name('Sheet1')#通过excel表格名称(rank)获取工作表
    dat = []  #创建空list
    for a in range(sheet.nrows):  #循环读取表格内容(每次读取一行数据)
                cells = sheet.row_values(a)  # 每行数据赋值给cells
                data = str(cells[0]) + ('t') + str(cells[1]) + ('n')#因为表内可能存在多列数据,0代表第一列数据,1代表第二列,以此类推
                dat.append(data) #把每次循环读取的数据插入到list
    return dat
a = excel() #返回整个函数的值
# print(a)
    
fh = open('result.txt', 'w', encoding='utf-8')
for b in a:  #循环读取a变量list
    print(b)
    fh.write(b)
fh.close()

转载请注明:文章转载自 www.051e.com
本文地址:http://www.051e.com/it/273107.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 ©2023-2025 051e.com

ICP备案号:京ICP备12030808号