[解決済み] TypeError: write() の引数は bytes ではなく str でなければならない (Python 3 vs Python 2 )
2022-02-01 10:27:58
質問
以下のコードは、python 2.7.13 で完全に動作します。
import os
with open('random.bin','w') as f:
f.write(os.urandom(10))
しかし、Python 3ではエラーを投げる 3.6.0 |Anaconda 4.3.0 (64bit)| (default, Dec 23 2016, 11:57:41) [MSC v.1900 64 bit (AMD64)] の場合です。
<ブロッククオートトレースバック(最も最近の呼び出し)。 ファイル "C:/Users/hsingh/PycharmProjects/Item3.py", line 3, in f.write(os.urandom(10)) TypeError: write() の引数はbyteではなくstrでなければなりません。
動作が異なる理由や修正方法があれば教えてください。
解決方法は?
Python 3では、ファイルをバイナリモードで開くかテキストモードで開くかの違いがあります。ただ
b
のフラグを立てるとバイナリになります。
with open('random.bin','wb') as f:
これはPython 2でも動作します。
関連
-
opencvとpillowを用いた顔認証システム(デモあり)
-
Python 人工知能 人間学習 描画 機械学習モデル作成
-
pythonサイクルタスクスケジューリングツール スケジュール詳解
-
Python interpreted model libraryによる機械学習モデル出力の可視化 Shap
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
[解決済み】お使いのCPUは、このTensorFlowバイナリが使用するようにコンパイルされていない命令をサポートしています。AVX AVX2
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み] builtins.TypeError: strでなければならない、bytesではない
-
[解決済み] Python 3で文字列をバイトに変換する最良の方法?
-
[解決済み] TypeError: Python3でファイルへの書き込み時に'str'ではなくbytesのようなオブジェクトが要求される
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
PythonはWordの読み書きの変更操作を実装している
-
パッケージングツールPyinstallerの使用と落とし穴の回避
-
Python LeNetネットワークの説明とpytorchでの実装
-
[解決済み】RuntimeWarning: invalid value encountered in double_scalars で numpy の除算ができない。
-
[解決済み] [Solved] sklearn error ValueError: 入力に NaN、infinity または dtype('float64') に対して大きすぎる値が含まれている。
-
[解決済み】numpy: true_divide で無効な値に遭遇
-
[解決済み】「SyntaxError.Syntax」は何ですか?Missing parentheses in call to 'print'」はPythonでどういう意味ですか?
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】Python: OverflowError: 数学の範囲エラー
-
[解決済み】「OverflowError: Python int too large to convert to C long" on windows but not mac