首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >检测pyserial python3中的文件结尾

检测pyserial python3中的文件结尾
EN

Stack Overflow用户
提问于 2016-04-28 19:06:01
回答 2查看 1.1K关注 0票数 0

我一直在搜索这个,但没有得到一个好的答案。

我必须通过两台PC之间的串口发送一个文件。

但是我不知道如何检测文件的结尾。

在PC1上,我使用teraTerm软件发送文件。

在PC2中使用以下python代码。

文件发送后,我需要放入一些消息,表明文件已完成。

代码语言:javascript
运行
复制
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

也请为Linux文件提供建议

EN

回答 2

Stack Overflow用户

发布于 2016-04-28 22:30:02

串行端口本身没有EOF。我从互联网上收集到的teraTerm没有发送文件的协议,只是以原始的形式发送文件。

您可以设置串行端口的读取超时,以便read在没有剩余数据时引发SerialTimeoutException

票数 0
EN

Stack Overflow用户

发布于 2017-08-11 02:22:45

我尝试了这个解决方案,尽管它不是那么优雅和简单。它确实有效。

代码语言:javascript
运行
复制
receivedByte = ser.read()         # read 1 byte
while receivedByte != b'':
    file.write(receivedByte)
    receivedByte = ser.read()

print('file received')
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36912802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档