読み取りと書き込みの両方でファイルを開く方法はありますか?私は "r +"がそのためだと思った。
バイナリファイルに取り組んでいるので、 "r + b"モードを試しましたが、ファイルが読み込めないというエラーが表示されます。読み書き用ファイルを開いていますか?
答えて
r+
は、同時に読み書きする標準モードです。これは、file()
/open()
がこのオペレーティングシステムコールの周りの小さなラッパーにすぎないので、fopen()
システムコールを使用した場合と同じです。
私はこのような何かを試してみましたし、期待どおりに動作します:
f = open("c:\\log.log", 'r+b')
f.write("\x5F\x9D\x3E")
f.read(100)
f.close()
:
f.read(サイズ) - ファイルの内容を読み取るために、コールf.read(サイズ)、 はデータ量を読み込んで文字列として返します。
そして:
f.write(文字列) Noneを返さない、ファイルに文字列の内容を書き込みます。
あなたがPython tutorial about reading and writing filesを開いた場合にも、あなたがそれを見つける:
は 'r +' を読み取りと書き込みの両方のファイルを開きます。
Windowsでは、モードに追加された 'b'はファイルをバイナリモードで開きます。 'rb'、 'wb'、 'r + b'のようなモードもあります。
は、ここでは、ファイルを読み込む方法ですし、次に閉じて再度開くせずに、(既存のデータを上書き)、それに書き込む:
with open(filename, "r+") as f:
data = f.read()
f.seek(0)
f.write(output)
f.truncate()
ファイルが存在しない(作成される)エンドケースをカバーするために 'a +'を使用してください –
seek()とtruncate()はどちらも重大です! – smwikipedia
これはテキストを追加するためには機能しません。 – multigoodverse
- 1. txtファイルを開いて読み込みますか?
- 2. ファイルを開いて書き込みます
- 3. 同じファイルを読み書きに使用できますか?
- 4. 書き込み中にファイルをロックすると、開いている間は読み込めません。
- 5. perlで読み書き用のファイルを開く(追加しない)
- 6. cmdを開いて読み書きする
- 7. 大きなファイルの書き込みと読み込み用に開く
- 8. 書き込み用ファイルを開く
- 9. Python:圧縮されていないファイル(.gz)を読み書きせずに読み込みます。
- 10. Python - IOError:読み込み用ファイルが開かない
- 11. ファイルから読み書きする
- 12. Javaを使用して積極的に書き込まれているファイルから読み込み[改善]
- 13. 開発マシンでファイルを読み書きする - ios
- 14. デバイス固有のエラー - s3dReadConfigFile "ファイルを開いて読み込みできません。"
- 15. FileSystemObjectを使用してcsvファイルを読み書きする
- 16. ストリームで読み込み中にファイルに書き込んでいますか?
- 17. phpの読み書きファイル
- 18. ファイルの読み書き
- 19. csvファイルの読み書き
- 20. ファイルを書き込み、ファイルを書き込みます。改行を使用している問題\
- 21. VBScriptを使用してファイルに読み書きする
- 22. 書き込みモードを読み取り専用で開く
- 23. ファイル読み込みと書き込み
- 24. ファイルを読み書きしているときに(OSレベルで)何が起こっていますか?
- 25. PDFiumはPostScriptファイルを読み書きできますか?
- 26. numpyファイルを開いて、読み込み、プロットする方法は?
- 27. ファイティングスコアリング - ファイルを開いて書き込む
- 28. 開いているAVIファイルからの読み取り
- 29. C#File.FileMode.Createを使用して読み取り専用ファイルを開きます。
- 30. マルチスレッドを使用したファイル読み込みの書き込み
あなたが解決しているかの問題?おそらく、ファイルの書き込み/読み取りよりも優れた解決策があります。 'mmap' –
私たちはあなたに答えることができるようにあなたのコードを教えてください。また、http://docs.python.org/tutorial/inputoutput.html#reading-and-writing-filesを見てみることもできます。しかし、私はr + bを使用しようとしており、それは動作します。 diff関数で1つのファイル記述子を使用する利点もありますか? –