我的脚本是:
# -*- coding: utf-8 -*-
RAW_ZIP = """PK šîF4“àµÑ$= tcp_host.exeì]
|GßË]È%\Èa/íµMኦ%ElÀBê…|bÜåÈ”#ƒMIzÙ£¡†<¢\·±¨UQ«©ZµjU´ÑÖh©´”ZªhQ—ÛôB¡œÿ7³{ùÀ¶~ýüéÁìì̼yó%ô6“›¸ŸIÖÃ%,…N–*§xŒ4xF*ÓΞŒÎd.•8¹l¹ j'4ŸZëí‚R;»‰MÊiÈL`
...long string...
"Ýä+\è\n$NKƒ—u-Èp‰f(OY3ò ˆh&‚"¾ ôE\>Ó]lÀY˜ *¸|ÐZV=Èø4«›„׋³\1òNDØø†R¼pžH5ÇHeòÓêxtŠ‹‰Yí2tªÖE˜"&-')r¢Wå¯AÏk"Õhv%r³\ã&·ù$šR¹ª6ñÕ«›ûP¨6³ÍÍý§ŽÚˆœÛ¢|Øâbý63>8£zŠn`–DÞøUâV“cO§E©¸z½õ—OùÛª|ä‹P‘[¾†ä9ÝGrŠüšK(EöŒíj»<£>M|ù^–¿¦Pß8¯Òw‘é’*3ŸÖh†¬®˜‹µ[]T°³CxÝ»âUŸ³Ê"RzY,ûŽ—o È#H¶®’ˆ“
>ÑaËm1èØ÷‰ )ô§ìKvÐ
c"""
但是当我运行它时,我得到了错误:
SyntaxError: EOF while scanning triple-quoted string literal
为什么?
解决方法:
原因:Python认为在字符串中文件结束.
猜测:由于某些原因,字符26在某些情况下是EOF.
动机:
Python文件是文本文件,而zip文件是二进制文件.您不应该混合使用它们,因为
>文本文件具有编码,而二进制文件则没有.
>在Windows,Mac和Linux中,行尾不同.文本文件可能会相应更改.
在这两种情况下,zip二进制文件都会损坏.
解:
编码.
>>> import base64
>>> base64.b64encode(b"""raw string""") # here you get the encoded result
b'cmF3IHN0cmluZw=='
>>> base64.b64decode(b'cmF3IHN0cmluZw==') # this is part of your Python file.
b'raw string'