Skip to Main Content
Blog

Read and Write Data in File in Python

Read and Write Data in File in Python

import struct


def read_from_txt_file():
	with open("file.txt", "r") as f:
		for line in f:
			print(line.strip())


def write_to_txt_file():
	with open("file.txt", "a") as f:  # append mode
		f.write("text 0\n")
		f.write("text 1\n")
		f.write("text 2\n")


def write_to_bin_file():
	with open("file.bin", "wb") as f:
		# Pack int + double + UTF string
		f.write(struct.pack("i", 0))
		f.write(struct.pack("d", 3.14))
		f.write(b"Value of pi")

		f.write(struct.pack("i", 1))
		f.write(struct.pack("d", 1.61))
		f.write(b"Value of phi")


def read_from_bin_file():
	with open("file.bin", "rb") as f:
		while True:
			data = f.read(4)  # int
			if not data:
				break
			i = struct.unpack("i", data)[0]

			d = struct.unpack("d", f.read(8))[0]

			# Read UTF string until next int (simplified approach)
			s_bytes = bytearray()
			while True:
				b = f.read(1)
				if not b or len(s_bytes) > 50:  # crude stop condition
					break
				s_bytes.extend(b)
				if b == b"\x00":  # stop at null terminator if present
					break
			s = s_bytes.decode("utf-8", errors="ignore").strip("\x00")

			print(f"({i}, {d}, {s})")


def main():
	write_to_txt_file()
	read_from_txt_file()
	# write_to_bin_file()
	# read_from_bin_file()


if __name__ == "__main__":
	main()