商城网站建,研创网,seo商城,阿里云服务的官方网站单位内外网是隔离的,USB对拷线被禁用,安全优盘使用太费事,就想到了通过串口传输文件.
import serial
from xmodem import XMODEM
import osdef Send_File(filepath, portCOM8, baudrate115200):bn os.path.basename(filepath)filesize os.stat(filepath).st_sizestrSendFile…单位内外网是隔离的,USB对拷线被禁用,安全优盘使用太费事,就想到了通过串口传输文件.
import serial
from xmodem import XMODEM
import osdef Send_File(filepath, portCOM8, baudrate115200):bn os.path.basename(filepath)filesize os.stat(filepath).st_sizestrSendFileCMD AFF_ str(filesize) _ bn \n# 打开串口ser serial.Serial(port, baudrate)# 定义YMODEM发送函数def send_ymodem(filename):def getc(size, timeout1):return ser.read(size)def putc(data, timeout1):return ser.write(data)modem XMODEM(getc, putc)with open(filename, rb) as f:status modem.send(f)return status# 发送指令ser.write(strSendFileCMD.encode())# 发送文件status send_ymodem(filepath)if status:print(f文件发送成功{filepath})else:print(f文件发送失败{filepath})# 关闭串口ser.close()def Recv_File(portCOM2, baudrate115200):# 打开串口ser serial.Serial(port, baudrate)# 定义YMODEM接收函数def recv_ymodem(filename):def getc(size, timeout1):return ser.read(size) or Nonedef putc(data, timeout1):return ser.write(data)modem XMODEM(getc, putc)with open(filename, wb) as f:status modem.recv(f)return status# 循环监听指令while True:# 接收指令print(等待接收指令)strCMD ser.read_until().strip().decode()print(strCMD)cmdlist strCMD.split(_)cmd cmdlist[0]filesize cmdlist[1]filename cmdlist[2]if cmd AFF:# 收到指令后开始接收文件print(开始接收文件)# 接收文件并保存status recv_ymodem(filename)if status:print(f文件接收成功{filename})else:print(f文件接收失败{filename})# 继续监听指令continue# 其他指令print(f收到指令{cmd})# 关闭串口ser.close()if __name____main__:Send_File(D:/users.7z) #发送文件#Recv_File() #接收文件
上面是简单的文件传输代码. 我目前内外网传输最多的就是截图,内网通过串口给外网发送指令,外网根据指令截图,然后自动传回内网,不用切换电脑,不用插拔优盘,确实方便.