[英]How to write binary and asci data into a file in python?
我有這個有線協議我正在實現,我必須將二進制和ASCII數據寫入同一個文件,我怎樣才能同時執行此操作,或者至少結果將是具有混合asci和二進制數據的文件?
我知道open("myfile", "rb")
確實以二進制模式打開myfile,除了我找不到解決方法如何解決這個問題!
你寫入文件的內容實際上是“字節”。 Python 2或3(*就在Python2中它是str
,我們在Python 3中將其更改為更清晰明確的bytes
)。
所以:
with open("file.ext", "w") as f:
f.write(b"some bytes")
例:
bash-4.3$ python
Python 2.7.6 (default, Apr 28 2014, 00:50:45)
[GCC 4.8.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> with open("file.ext", "w") as f:
... f.write(b"some bytes")
...
>>>
bash-4.3$ cat file.ext
some bytesbash-4.3$
通常,如果要處理Unicode字符串,則使用編碼( Python 3中的str
,Python 2中的unicode
)。 例如:
s = "Hello World!"
with open("file.ext", "w") as f:
f.write(s.encode("utf-8"))
注:如評論中所述; open(filename, "wb")
並沒有真正做到你認為它做的事情 - 它只會影響新行的處理方式。
在Python 2下, 唯一不同的二進制模式是在寫入時如何翻譯換行符; \\n
將被轉換為依賴於平台的行分隔符。
換句話說,只需將ASCII字節字符串直接寫入二進制文件,就Python而言,ASCII數據和二進制數據之間沒有區別。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.