欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python通過串口實現(xiàn)收發(fā)文件

 更新時間:2023年11月23日 09:25:20   作者:mYlEaVeiSmVp  
這篇文章主要為大家詳細介紹了Python如何通過串口實現(xiàn)收發(fā)文件功能,文中的示例代碼簡潔易懂,具有一定的借鑒價值,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

單位內(nèi)外網(wǎng)是隔離的,USB對拷線被禁用,安全優(yōu)盤使用太費事,就想到了通過串口傳輸文件.

import serial
from xmodem import XMODEM
import os
 
def Send_File(filepath, port='COM8', baudrate=115200):
    bn = os.path.basename(filepath)
    filesize = os.stat(filepath).st_size
    strSendFileCMD = "AFF_" + str(filesize) + "_" + bn + "\n"
    # 打開串口
    ser = serial.Serial(port, baudrate)
     
    # 定義YMODEM發(fā)送函數(shù)
    def send_ymodem(filename):
        def getc(size, timeout=1):
            return ser.read(size)
        def putc(data, timeout=1):
            return ser.write(data)
        modem = XMODEM(getc, putc)
        with open(filename, "rb") as f:
            status = modem.send(f)
        return status
     
    # 發(fā)送指令
    ser.write(strSendFileCMD.encode())
    # 發(fā)送文件
    status = send_ymodem(filepath)
    if status:
        print(f"文件發(fā)送成功:{filepath}")
    else:
        print(f"文件發(fā)送失?。簕filepath}")
    # 關(guān)閉串口
    ser.close()
 
 
def Recv_File(port='COM2', baudrate=115200):
    # 打開串口
    ser = serial.Serial(port, baudrate)
     
    # 定義YMODEM接收函數(shù)
    def recv_ymodem(filename):
        def getc(size, timeout=1):
            return ser.read(size) or None
        def putc(data, timeout=1):
            return ser.write(data)
        modem = XMODEM(getc, putc)
        with open(filename, "wb") as f:
            status = modem.recv(f)
        return status
     
    # 循環(huán)監(jiān)聽指令
    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}")
            # 繼續(xù)監(jiān)聽指令
            continue
        # 其他指令
        print(f"收到指令:{cmd}")
    # 關(guān)閉串口
    ser.close()
 
if __name__=="__main__":
    Send_File("D:/users.7z") #發(fā)送文件
    #Recv_File() #接收文件

上面是簡單的文件傳輸代碼.

我目前內(nèi)外網(wǎng)傳輸最多的就是截圖,內(nèi)網(wǎng)通過串口給外網(wǎng)發(fā)送指令,外網(wǎng)根據(jù)指令截圖,然后自動傳回內(nèi)網(wǎng),不用切換電腦,不用插拔優(yōu)盤,確實方便.

到此這篇關(guān)于Python通過串口實現(xiàn)收發(fā)文件的文章就介紹到這了,更多相關(guān)Python串口收發(fā)文件內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 利用python爬取古詩文網(wǎng)中各類古詩的方法

    利用python爬取古詩文網(wǎng)中各類古詩的方法

    這篇文章主要介紹了利用python爬取古詩文網(wǎng)中各類古詩的方法,文中通過代碼示例給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2024-03-03
  • keras中的卷積層&池化層的用法

    keras中的卷積層&池化層的用法

    這篇文章主要介紹了keras中的卷積層&池化層的用法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-05-05
  • python遠控代碼的教程詳解

    python遠控代碼的教程詳解

    大家遠控還在用軟件嗎,其實幾行代碼輕松搞定,這篇文章小編就來和大家介紹一下如何使用Python實現(xiàn)遠程控制代碼,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2024-12-12
  • 淺談使用Python變量時要避免的3個錯誤

    淺談使用Python變量時要避免的3個錯誤

    這篇文章主要介紹了淺談使用Python變量時要避免的3個錯誤,還是比較不錯的,涉及部分代碼分析,以及字典的創(chuàng)建等相關(guān)內(nèi)容,需要的朋友可以參考下。
    2017-10-10
  • Python中的字典類型詳解

    Python中的字典類型詳解

    在Python中,字典是一種無序且可變的數(shù)據(jù)類型,用于存儲鍵值對數(shù)據(jù),字典可以根據(jù)鍵(key)來快速檢索對應(yīng)的值,相比于其他類型的容器,如列表(List)、元組等,字典具有更高效的查找和插入性能,因此在Python編程中被廣泛使用
    2023-06-06
  • Python中用format函數(shù)格式化字符串的用法

    Python中用format函數(shù)格式化字符串的用法

    這篇文章主要介紹了Python中用format函數(shù)格式化字符串的用法,格式化字符串是Python學(xué)習(xí)當(dāng)中的基礎(chǔ)知識,本文主要針對Python2.7.x版本,需要的朋友可以參考下
    2015-04-04
  • 利用Pandas和Numpy按時間戳將數(shù)據(jù)以Groupby方式分組

    利用Pandas和Numpy按時間戳將數(shù)據(jù)以Groupby方式分組

    這篇文章主要介紹了利用Pandas和Numpy按時間戳將數(shù)據(jù)以Groupby方式分組,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • python設(shè)置環(huán)境變量的作用和實例

    python設(shè)置環(huán)境變量的作用和實例

    在本篇文章里小編給各位整理了關(guān)于python設(shè)置環(huán)境變量的作用和實例內(nèi)容知識點,需要的朋友們學(xué)習(xí)參考下。
    2019-07-07
  • Python Matplotlib條形圖之垂直條形圖和水平條形圖詳解

    Python Matplotlib條形圖之垂直條形圖和水平條形圖詳解

    這篇文章主要為大家詳細介紹了Python Matplotlib條形圖之垂直條形圖和水平條形圖,使用數(shù)據(jù)庫,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Python列表轉(zhuǎn)一維DataFrame的完整指南

    Python列表轉(zhuǎn)一維DataFrame的完整指南

    在數(shù)據(jù)處理領(lǐng)域,Pandas的DataFrame是當(dāng)之無愧的王者,本文將用5個核心方法,教你優(yōu)雅地將一維列表轉(zhuǎn)換為Pandas DataFrame,感興趣的可以了解下
    2025-04-04

最新評論