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