2016-04-28 22 views
0

私はこれを検索していますが、良い答えを得ることができませんでした。pyserial python3のファイルの終わりを検出します

私は2つのPC間のCOMポートを介してファイルを送信する必要があります。

しかし、私はファイルの終わりを検出する方法を知らない。

PC 1では、ファイルを送信するためにteraTermソフトウェアを使用します。

PC 2では、次のPythonコードを使用しています。

ファイルが送信された後、ファイルが完成したというメッセージを送信する必要があります。

import serial 
ser = serial.Serial('COM1') 
ser.flush_input_buffer() 
file = open('file.txt','a')  #open empty file for appending 
while True: 
    receivedByte = ser.read()  # read 1 byte 
    file.write(receivedByte) 
    if (#detect end of file): 
     break 
print('file received') 

ご注意:PCは、Windows 8.1、Pyserial、Pythonの3.4

でもなどのシリアルポートにはEOFはありませんLinuxファイル用

答えて

0

を提案してください。そして、私がインターネットから集めることができるものteraTermは、ファイルを送信するためのプロトコルを持っていませんが、生のままの形式で送信します。

シリアルポートの読み取りタイムアウトを設定すると、readはデータが残っていないときにSerialTimeoutExceptionになります。

0

私はこのソリューションを試しましたが、それはエレガントでなく単純です。それは動作します。

receivedByte = ser.read()   # read 1 byte 
while receivedByte != b'': 
    file.write(receivedByte) 
    receivedByte = ser.read() 

print('file received') 
関連する問題