読み書き両方の目的でファイルを開く方法はありますか?
回避策として、書き込み用にファイルを開き、閉じてから、読み取り用にもう一度開きます。しかし、both読み書き用にファイルを開く方法はありますか?
ファイルを読み込んでから、ファイルを閉じて再度開くことなく書き込みます(既存のデータを上書きします)。
with open(filename, "r+") as f:
data = f.read()
f.seek(0)
f.write(output)
f.truncate()
r+
は同時に読み書きするための標準モードです。 fopen()
/file()
はこのオペレーティングシステムコールの小さなラッパーであるため、これはopen()
システムコールの使用と変わりありません。
私はこのようなことを試してみました、そしてそれは予想通りに動きます:
f = open("c:\\log.log", 'r+b')
f.write("\x5F\x9D\x3E")
f.read(100)
f.close()
どこで:
f.read(size) - ファイルの内容を読み取るには、f.read(size)を呼び出します。これは、一定量のデータを読み取り、それを文字列として返します。
そして:
f.write(string)はstringの内容をファイルに書き込み、Noneを返します。
また、 ファイルの読み書きに関するPythonのチュートリアル を開くと、次のようになります。
'r +'はファイルを読み書き両方で開きます。
Windowsでは、モードに追加された 'b'はファイルをバイナリモードで開くので、 'rb'、 'wb'、 'r + b'のようなモードもあります。