python struct.pack方法報錯argument for 's' must be a bytes object 解決


參考 https://blog.csdn.net/weixin_38383877/article/details/81100192

在python3下使用struct模塊代碼

fileHead = struct.pack('128sl', os.path.basename(filePath),os.stat(filePath).st_size);

拋出異常:

argument for 's' must be a bytes object必須要是字節類型。

解決辦法: 
把字符串的地方轉為字節類型,還要要先轉成utf-8的編碼(否則報錯string argument without an encoding),代碼如下:

fileHead = struct.pack('128sl', bytes(os.path.basename(filePath).encode('utf-8')),os.stat(filePath).st_size);


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM