在 Python 中打开文件:字节数组转换为字符串?
Opening a file in Python: bytes array converted to string?
我有一个包含如下数据的文本文件
b'\x00\x09\x00\xfe'
这是从 TCP 套接字流传输到文本文件中的。将此文本文件命名为 'stream.txt'。我用以下代码打开了这个文件:
f = open("stream.txt", "rb")
bytes_read = f.read()
当我在另一个 Python 脚本中打开此文件时,原始文件中的每个“\”都对应一个“\”。最重要的是,我无法访问字节数组,因为它似乎已经变成了一个字符串。也就是说,'bytes_read'现在是
'b"\x00\x09\x00\xfe"'
如何将此字符串恢复为字节数组?
我用来捕获此数据的客户端代码是以下脚本:
from socket import *
clientsock = socket(AF_INET, SOCK_STREAM)
clientsock.connect(('1.2.3.4', 2000)) # Open the TCP socket
clientsock.sendall(b'myCommand') # Send a command to the server
data = clientsock.recv(16) # Wait for the response
print(data) # For piping to 'stream.txt'
clientsock.close()
当数据打印到终端时,我将其重定向到一个文件:
$ python3 client.py > stream.txt
我的目标是绕过重定向到文本文件并直接通过管道传输到绘图仪...但首先我想让它工作。
能够通过直接写入文件来解决此问题。因此,我没有使用 'print(data)' 并重定向到文件,而是尝试了这个:
file = open("rawData", "wb")
...
file.write(data)
...
file.close()
能够按预期处理 "rawData"。
我有一个包含如下数据的文本文件
b'\x00\x09\x00\xfe'
这是从 TCP 套接字流传输到文本文件中的。将此文本文件命名为 'stream.txt'。我用以下代码打开了这个文件:
f = open("stream.txt", "rb")
bytes_read = f.read()
当我在另一个 Python 脚本中打开此文件时,原始文件中的每个“\”都对应一个“\”。最重要的是,我无法访问字节数组,因为它似乎已经变成了一个字符串。也就是说,'bytes_read'现在是
'b"\x00\x09\x00\xfe"'
如何将此字符串恢复为字节数组?
我用来捕获此数据的客户端代码是以下脚本:
from socket import *
clientsock = socket(AF_INET, SOCK_STREAM)
clientsock.connect(('1.2.3.4', 2000)) # Open the TCP socket
clientsock.sendall(b'myCommand') # Send a command to the server
data = clientsock.recv(16) # Wait for the response
print(data) # For piping to 'stream.txt'
clientsock.close()
当数据打印到终端时,我将其重定向到一个文件:
$ python3 client.py > stream.txt
我的目标是绕过重定向到文本文件并直接通过管道传输到绘图仪...但首先我想让它工作。
能够通过直接写入文件来解决此问题。因此,我没有使用 'print(data)' 并重定向到文件,而是尝试了这个:
file = open("rawData", "wb")
...
file.write(data)
...
file.close()
能够按预期处理 "rawData"。