阅读TXT并获得怪异行为



我在打开Adobe Media Encoder的txt日志文件时遇到问题。

日志本身看起来是这样的:

- Source File: /var/folders/3t/fwptgmxx4h9bkt7j0tt6wx_h0000gn/T/Untitled Project_AME/tmpAEtoAMEProject-0_RENDER.aep ... etc...

然而,当我试图在这里复制它时,我在预览中得到了一些奇怪的东西:

� � � �-� �S�o�u�r�c�e� �F�i�l�e�:� �/�v�a�r�/�f�o�l�d�e�r�s�/�3�t�/�f�w�p�t�g�m�x�x�4�h�9�b�k�t�7�j�0�t�t�6�w�x�_�h�0�0�0�0�g�n�/�T�/�U�n�t�i�t�l�e�d� �P�r�o�j�e�c�t�_�A�M�E�/�t�m�p�A�E�t�o�A�M�E�P�r�o�j�e�c�t�-

当我尝试拆分((字符串时,它会返回,因为我理解十六进制:

nx00nx00nx000x005x00/x002x007x00/x002x000x002x001x00 x000x004x00:x00

到目前为止,我的代码是:

with open(config.ame_log_file, mode='rb') as amelog_file:
amelog = amelog_file.read()
stringer = amelog.decode('utf-8', 'backslashreplace')

此STRINGER变量是一个多行字符串。当我使用python打印它时,我会得到正常的文本。但是我在((中找不到任何东西。正则表达式也不起作用。我不会操纵绳子。尽管upper((仍然有效。数组方括号符号[]也适用。

你能帮我吗?

我试过所有的编码,比如utf 8,16,32,be,le。没有什么帮助。

2021年5月27日下午04:29:30:队列已启动

  • 源文件:/var/folders/3t/fwptgmxx4h9bkt7j0tt6wx_h0000gn/T/无标题项目_AME/tmpAE到AME项目-0_RENDER.aep
  • 输出文件:/Users/tim/Downloads/tim-gfx-1621932918_2.mp4
  • 使用的预设:匹配源-高比特率
  • 视频:1920x1080(1.0(,每秒25帧,渐进式,硬件编码,00:00:30:00
  • 音频:AAC,320 kbps,48 kHz,立体声
  • 比特率:VBR,1次通过,目标10.00Mbps
  • 编码时间:00:00:29 05/27/2021 04:30:00 PM:文件编码成功

2021年5月27日下午04:30:00:队列已停止

当我打印(file.read(((时,即使没有任何编码/解码,我也会在stdout中得到相同的输出。

如果我捕获一个变量的stdout并再次打印回来,我得到的是:

['', 'x00', 'x00', 'x000x005x00/x002x007x00/x002x000x002x001x00 x000x004x00:x002x009x00:x003x000x00 x00Px00Mx00 x00:x00 x00Qx00ux00ex00ux00ex00 x00Sx00tx00ax00rx00tx00ex00dx00', 'x00', 'x00', 'x00 x00-x00 x00Sx00ox00ux00rx00cx00ex00 x00Fx00ix00lx00ex00:x00 x00/x00vx00ax00rx00/x00fx00ox00lx00dx00ex00rx00sx00/x003x00tx00/x00fx00wx00px00tx00gx00mx00xx00xx004x00hx009x00bx00kx00tx007x00jx000x00tx00tx006x00wx00xx00_x00hx000x000x000x000x00gx00nx00/x00Tx00/x00Ux00nx00tx00ix00tx00lx00ex00dx00 x00Px00rx00ox00jx00ex00cx00tx00_x00Ax00Mx00Ex00/x00tx00mx00px00Ax00Ex00tx00ox00Ax00Mx00Ex00Px00rx00ox00jx00ex00cx00tx00-x000x00_x00Rx00Ex00Nx00Dx00Ex00Rx00.x00ax00ex00px00', 'x00 x00-x00 x00Ox00ux00tx00px00ux00tx00 x00Fx00ix00lx00ex00:x00 x00/x00Ux00sx00ex00rx00sx00/x00tx00ix00mx00/x00Dx00ox00wx00nx00lx00ox00ax00dx00sx00/x00Tx00ix00mx00-x00gx00fx00xx00-x001x006x002x001x009x003x002x009x001x008x00_x002x00.x00mx00px004x00', 'x00 x00-x00 x00Px00rx00ex00sx00ex00tx00 x00Ux00sx00ex00dx00:x00 x00Mx00ax00tx00cx00hx00 x00Sx00ox00ux00rx00cx00ex00 x00-x00 x00Hx00ix00gx00hx00 x00bx00ix00tx00rx00ax00tx00ex00', 'x00 x00-x00 x00Vx00ix00dx00ex00ox00:x00 x001x009x002x000x00xx001x000x008x000x00 x00(x001x00.x000x00)x00,x00 x002x005x00 x00fx00px00sx00,x00 x00Px00rx00ox00gx00rx00ex00sx00sx00ix00vx00ex00,x00 x00Hx00ax00rx00dx00wx00ax00rx00ex00 x00Ex00nx00cx00ox00dx00ix00nx00gx00,x00 x000x000x00:x000x000x00:x003x000x00:x000x000x00', 'x00 x00-x00 x00Ax00ux00dx00ix00ox00:x00 x00Ax00Ax00Cx00,x00 x003x002x000x00 x00kx00bx00px00sx00,x00 x004x008x00 x00kx00Hx00zx00,x00 x00Sx00tx00ex00rx00ex00ox00', 'x00 x00-x00 x00Bx00ix00tx00rx00ax00tx00ex00:x00 x00Vx00Bx00Rx00,x00 x001x00 x00px00ax00sx00sx00,x00 x00Tx00ax00rx00gx00ex00tx00 x001x000x00.x000x000x00 x00Mx00bx00px00sx00', 'x00 x00-x00 x00Ex00nx00cx00ox00dx00ix00nx00gx00 x00Tx00ix00mx00ex00:x00 x000x000x00:x000x000x00:x002x009x00', 'x000x005x00/x002x007x00/x002x000x002x001x00 x000x004x00:x003x000x00:x000x000x00 x00Px00Mx00 x00:x00 x00Fx00ix00lx00ex00 x00Sx00ux00cx00cx00ex00sx00sx00fx00ux00lx00lx00yx00 x00Ex00nx00cx00ox00dx00ex00dx00', 'x00', 'x00', 'x000x005x00/x002x007x00/x002x000x002x001x00 x000x004x00:x003x000x00:x000x000x00 x00Px00Mx00 x00:x00 x00Qx00ux00ex00ux00ex00 x00Sx00tx00ox00px00px00ex00dx00 ']

如果我打开这个二进制文件并打印它的内容,我会得到字节对象:

b'nx00nx00nx000x005x00/x002x007x00/x002x000x002x001x00 x000x004x00:x002x009x00:x003x000x00 x00Px00Mx00 x00:x00 x00Qx00ux00ex00ux00ex00 x00Sx00tx00ax00rx00tx00ex00dx00nx00nx00nx00 x00-x00 x00Sx00ox00ux00rx00cx00ex00 x00Fx00ix00lx00ex00:x00 x00/x00vx00ax00rx00/x00fx00ox00lx00dx00ex00rx00sx00/x003x00tx00/x00fx00wx00px00tx00gx00mx00xx00xx004x00hx009x00bx00kx00tx007x00jx000x00tx00tx006x00wx00xx00_x00hx000x000x000x000x00gx00nx00/x00Tx00/x00Ux00nx00tx00ix00tx00lx00ex00dx00 x00Px00rx00ox00jx00ex00cx00tx00_x00Ax00Mx00Ex00/x00tx00mx00px00Ax00Ex00tx00ox00Ax00Mx00Ex00Px00rx00ox00jx00ex00cx00tx00-x000x00_x00Rx00Ex00Nx00Dx00Ex00Rx00.x00ax00ex00px00nx00 x00-x00 x00Ox00ux00tx00px00ux00tx00 x00Fx00ix00lx00ex00:x00 x00/x00Ux00sx00ex00rx00sx00/x00tx00ix00mx00/x00Dx00ox00wx00nx00lx00ox00ax00dx00sx00/x00Tx00ix00mx00-x00gx00fx00xx00-x001x006x002x001x009x003x002x009x001x008x00_x002x00.x00mx00px004x00nx00 x00-x00 x00Px00rx00ex00sx00ex00tx00 x00Ux00sx00ex00dx00:x00 x00Mx00ax00tx00cx00hx00 x00Sx00ox00ux00rx00cx00ex00 x00-x00 x00Hx00ix00gx00hx00 x00bx00ix00tx00rx00ax00tx00ex00nx00 x00-x00 x00Vx00ix00dx00ex00ox00:x00 x001x009x002x000x00xx001x000x008x000x00 x00(x001x00.x000x00)x00,x00 x002x005x00 x00fx00px00sx00,x00 x00Px00rx00ox00gx00rx00ex00sx00sx00ix00vx00ex00,x00 x00Hx00ax00rx00dx00wx00ax00rx00ex00 x00Ex00nx00cx00ox00dx00ix00nx00gx00,x00 x000x000x00:x000x000x00:x003x000x00:x000x000x00nx00 x00-x00 x00Ax00ux00dx00ix00ox00:x00 x00Ax00Ax00Cx00,x00 x003x002x000x00 x00kx00bx00px00sx00,x00 x004x008x00 x00kx00Hx00zx00,x00 x00Sx00tx00ex00rx00ex00ox00nx00 x00-x00 x00Bx00ix00tx00rx00ax00tx00ex00:x00 x00Vx00Bx00Rx00,x00 x001x00 x00px00ax00sx00sx00,x00 x00Tx00ax00rx00gx00ex00tx00 x001x000x00.x000x000x00 x00Mx00bx00px00sx00nx00 x00-x00 x00Ex00nx00cx00ox00dx00ix00nx00gx00 x00Tx00ix00mx00ex00:x00 x000x000x00:x000x000x00:x002x009x00nx000x005x00/x002x007x00/x002x000x002x001x00 x000x004x00:x003x000x00:x000x000x00 x00Px00Mx00 x00:x00 x00Fx00ix00lx00ex00 x00Sx00ux00cx00cx00ex00sx00sx00fx00ux00lx00lx00yx00 x00Ex00nx00cx00ox00dx00ex00dx00nx00nx00nx000x005x00/x002x007x00/x002x000x002x001x00 x000x004x00:x003x000x00:x000x000x00 x00Px00Mx00 x00:x00 x00Qx00ux00ex00ux00ex00 x00Sx00tx00ox00px00px00ex00dx00 '

多亏了@triplee,问题才得以解决。

工作字符串在解码的变量中。

with open(config.ame_log_file, 'rb') as amelog_file:
amelog = amelog_file.read()
decoded = amelog.decode('utf-16le', 'ignore')

最新更新