
读取文件夹文件 拼接文件名 和文件内容
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()