0

我有一台主机通过串行连接到 Linux 目标。目标正在使用串行端口进行外壳 I/O。我需要在目标上保存一个包含主机内容的文本文件。

我以为我可以摆脱这样做:

ser.write("cat > file.txt\n")
ser.write([contents I need to add to the file])
ser.write(chr(4))
ser.write(chr(4))

但是我发送的 's 并没有关闭文件。我尝试了 chr(4)...\x04、print、str = 和其他一些变体,但它们都以同样的方式失败。

如果我用 minicom 模拟这个,然后通过上传一个包含 0x04 0x04 的 2 字节文件来发送 [contents...],该文件将按预期关闭。

我还没有尝试在 python 中打开“EOF”文件并发送它。我会做的,我几乎没有选择。但我是 python 新手,所以我一定做错了什么。

对此有任何明显的新手修复答案吗?

谢谢。

4

1 回答 1

1

作为一种解决方法,您可以使用heredoc吗?

ser.write("cat > file.txt << END_OF_FILE\n")
ser.write([contents I need to add to the file])
ser.write("\nEND_OF_FILE\n");

对于更强大的解决方案,您可能应该查看一些通过串行线路传输的文件传输协议,例如Kermit

于 2013-08-14T13:41:35.043 回答