1. python 3.x 寫二進制文件
FileOutput=open(r'test.txt','wb')
FileOutput.write(b'xc4')
FileOutput.write(b'xe3')
FileOutput.close()
2. python 串口傳輸問題
首先用USB線連上串口設備,然後確認是哪個COM口,下面用COM3為例。
import serial
t=serial.Serial('COM3',115200)
command = "aabbccddee" //十六進制字元串
t.write(command.decode("hex")) //轉換成十六進制發送,否則設備不認識
print t.read(16)
3. 如何用串口工具模擬器向python發送數據
串口模塊的波特率比較特別,找了幾個串口工具都不支持。。。所以,乾脆用python自己來寫了,其實已經好奇好久了,別人的工具各種不順手。
需要pyserial的支持,兼容各種平台,不需要新編譯二進制文件。
先貼一個定時發送的代碼:
import serial
import time
ser = serial.Serial('/dev/ttyUSB0', 250000, timeout=1)
print ser.isOpen()
words="gggggggggggggggg"
while (1):
print "send 256x\""+words+"\" to remotes"
startTime = time.time()
times = 256
while (times):
times -= 1
s = ser.write(words)
endTime = time.time()
print "use time: "+str(endTime-startTime)
print ""
time.sleep(5)
ser.close()
4. 如何用python實現串口通信
Python非常適合寫一些測試的腳本,如快速的串口通信測試等。如果使用VC++ QT開發,可能用時較多,使用python,如果掌握使用方法,可以直接讀寫測試,配合設備或是串口助手,很快驗證與實現。
Python有沒有現成的串口API直接調用呢?經過實踐驗證,需要安裝一個叫 Pyserial的組件即可。這個可以在github上下載。
在windows 7 64bit 上可以使用嗎?當然可以使用,我安裝的python3.5為64位的。把下載後的文件,其中有一個serial的文件夾,拷貝到python35安裝路徑, C:\Python35\Lib\site-packages\serial
網上可以搜一下windows的安裝包,安裝完也是:C:\Python35\Lib\site-packages\serial ,可以用最新的版本,替換即可。
測試的方法:在python IDE里測試:
>>> import serial
這里如果報錯,是python版本與pyserial版本沒有配合好。如果正常,不返回,即可以導入serial模塊。
>>> ser=serial.Serial("COM5",115200)
這里為COM5,115200的波特率。如果打不開,請檢查安裝環境。
>>> ser.write('hello,serial test'.encode())
17
發送測試(如果返回位元組數,說明返回成功),這里需要轉換一個編碼為位元組。
以上測試,可以使用現在的設備或是串口助手,如安裝Virtual Serial Port Driver 7.2 虛擬串口軟體,設置一對串口,進行自發自收的測試。
>>> print(ser.readline())
b'abcdefg\r\n'
這里是串口接收,有接收的超時。設備或是串口助手發送一個字元串,以回車換行結束,這里就可以收到列印出來。
也可以用ser.read(),這里只接收一個字元來實現。
上面已經實現了基本的串口操作。
關閉串口為:
>>> ser.close()
如果使用python,一般寫個py文件,就像windows bat 批處理一樣,這是python強大的地方。如果寫一個py腳本呢?其實只要把上面的命令,一條條寫下來,就是一個腳本,測試如下:
import serialser=serial.Serial("COM5",115200,timeout=0.5)for i in range(0,100-1):ser.write('hello\r\n'.encode())print(ser.readline());ser.close()
5. python 用socket怎麼發送一段二進制數據
參考python 的struct mole — Interpret strings as packed binary data, 用來將數據封裝到類似C語言的結構體中進行發送。具體可以參考:
https://docs.python.org/2/library/struct.html
http://www.cnblogs.com/gala/archive/2011/09/22/2184801.html
http://stackoverflow.com/questions/3753589/packing-and-unpacking-variable-length-array-string-using-the-struct-mole-in-py
6. 如何用python生成和讀取二進制文件
可以使用numpy.fromfile(),也可以使用open(filename,
'rb'),其中的'b'就是二進制的意思,然後使用文件類型的read方法,讀取一些字zd節,再用struct.unpack()方法來解析二進制。
第一種方法是一次性讀入文件(或文件的內前多少個連續位元組)到一個數組中,因此,靈活性差。
第二容種方法靈活性很高,可以讀取任意位置(使用文件的seek()方法跳躍位置)的二進制數據,再使用struct.unpack()方法來進行各種二進制解析。
提示:二進制文件是不保留存儲方式的數據格式,因此,讀二進制文件時應該知道二進制文件的存儲格式。
7. python二進制文件的讀取與寫入可以分別使用 和 方法
可以使用read方法和readline方法