What is the best way to save data in python?

In python, we have discussed many concepts and conversions. But sometimes, we come to a situation where we need to read a text from a file, write a text from a file, append a text in a file, and save a file in python. In this tutorial, we will be discussing how to save a variable in a file.

  • What are file access modes?
  • Ways to save a variable in a file in python
    • 1. Using string concatenation to save a variable in a file in Python
    • 2. Using String formatting to save a variable in a file in Python
    • 3. By importing pickle library to save a variable in a file
    • 4. Using numpy library to save a variable in a file
    • Conclusion

What are file access modes?

Access modes are used to govern the type of operations possible in the opened file. It tells us about how the file will be used once it’s opened. These modes define the location of the file handle in the file. The file handle is just like a cursor, which tells from where the data has to be read or written in the file. We have 6 modes in python:

  • Read-only (‘r’): It only opens text files for reading. If the file does not exist, it raises the I\O error. This is the default mode in which the file is opened.
  • Write only (‘w’): It opens the file for writing. If the file exists previously, the data is truncated and over-write the data. it creates the file if the filename does not exist.
  • Read and Write (‘r+’): It opens the file for reading and writing. It raises an I/O error if the file does not exist.
  • Write and read (‘w+’): It opens the file for reading and writing. If the file exists, the data is over-written.
  • Append only (‘a’): It opens the file for writing. If the file does not exist, it gets created. The data which is written gets appended at the last of the data which is already written.
  • Append and read (‘a+’): It opend=s a file for reading and writing. The file gets created if does not exist. The data which is being written is inserted at the end of the data, after the existing data.

Many times a user or a python programmer needs to delete or rename a file. To know how to execute these tasks you can read our posts from here:

  • Python Rename File
  • [Best] Ways to Delete a File in Python

Here, we will be discussing all the different ways through which we can save a variable in a file in python:

1. Using string concatenation to save a variable in a file in Python

In this example, we will use open(file, mode) with the file’s pathname as files and mode as ‘w’ to open the file for writing. Then, we will use repr(object) with the object as the variable to convert a variable to a string. After that, we will call the file.write(data) with data as a string concatenation of three strings, a string containing the variable name and = the string version of the variable, and "\n". At last, we will use a file.close() to close the file. Let us look at the example for understanding the concept in detail.

#input text
input_dictionary = {"one" : 1, "two" : 2}

#open file
file = open("Python.txt", "w")

#convert variable to string
str = repr(input_dictionary)
file.write("input_dictionary = " + str + "\n")

#close file
file.close()

f = open('Python.txt', 'r')
if f.mode=='r':
    contents= f.read()

Output:

What is the best way to save data in python?

Explanation:

  • Firstly, Then, we will take an input dictionary with two values in it.
  • Then, we will open the file with file = open(). We have passed the file name and ‘w’ as the write mode as the parameter.
  • Then, we will convert the variable into the string with the repr() function.
  • Then, we will apply file.write() in which we have passed the input dictionary.
  • At last, we will be closing the file with file.close().
  • Hence, you can see the data gets saved in the particular file.

2. Using String formatting to save a variable in a file in Python

In this example, we will be using open(file, mode) with the file’s pathname as a file and modes as ‘w’ to open the file for writing. Then, we will call the file.write(data) with data as the string formats “%s %d” followed by % and a tuple containing a string of the variable name and the variable. At last, we will close the file by using file.close(). Let us look at the example for understanding the concept in detail.

#input variable
input_dictionary = {"one" : 1, "two" : 2}

file = open("Python.txt", "w")
file.write("%s = %s\n" %("input_dictionary", input_dictionary))

file.close()

f = open('Python.txt', 'r')
if f.mode=='r':
    contents= f.read()

Output:

What is the best way to save data in python?

Explanation:

  • Firstly, Then, we will be taking an input dictionary with two values in it.
  • Then, we will open the file with file = open(). Inside which we have passed the file name and ‘w’ as the write mode as the parameter.
  • Then, we will apply file.write() in which we have passed the input dictionary.
  • At last, we will be closing the file with file.close().
  • Hence, you can see the data gets saved in the particular file.

3. By importing pickle library to save a variable in a file

In this example, we will be importing the pickle library. Then, we will be using open(file, mode) with the pathname of a file as a file and modes as ‘w’ to open the file for writing. After that, we will apply the pickle library with the parameters as dict and file as a variable. At last, we will close the file by using file.close(). Let us look at the example for understanding the concept in detail.

import pickle
input_dictionary = {'one': 1, 'two': 2}
file = open('Python.txt', 'w')
pickle.dump(input_dictionary, file)
file.close()

with open('Python.txt', 'rb') as f:
    dict = pickle.load(f)

Output:

What is the best way to save data in python?

Explanation:

  • Firstly, we will be importing the pickle module.
  • Then, we will be taking an input dictionary with two values in it.
  • Then, we will open the file with file = open(). We have passed the file name and ‘w’ as the write mode as the parameter.
  • After that, we will apply the dump() function from the pickle module, which will dump all the data into the particular file.
  • At last, we will close the file with file.close().
  • Hence, you can see the output.

4. Using numpy library to save a variable in a file

In this example, we will be importing a numpy library with an alias name as np. Then we will be taking two lists: a and b. Then, we will apply the savetxt() function from the numpy library. Let us look at the example for understanding the concept in detail.

import numpy as np
a = [1,2,3,4,5]

np.savetxt('Python.txt',a)

print(open("E:\python.txt").read())

Output:

What is the best way to save data in python?

Explanation:

  • Firstly, we will be importing the numpy module with an alias name as np.
  • Then, we will be taking input as a list in the variable a.
  • Then, we will apply the savetxt() function from the numpy library.
  • Inside which we have passed the file name and the list as the parameter.
  • At last, if we open the same file, we will see the output as shown.
  • Hence, you can see the output is saved in the given file.

Conclusion

In this tutorial, we have learned about the concept of saving a variable in a file in python. We have seen all the access modes in the file. After that, we have discussed all the ways through which we can save a variable in a file in python. All the ways are explained in detail with the help of examples. You can use any of the functions according to your choice and your requirement in the program.

However, if you have any doubts or questions, do let me know in the comment section below. I will try to help you as soon as possible.

What is the best way to store data in Python?

We're going to consider the following formats to store our data..
Plain-text CSV — a good old friend of a data scientist..
Pickle — a Python's way to serialize things..
MessagePack — it's like JSON but fast and small..
HDF5 —a file format designed to store and organize large amounts of data..

How do you save output data in Python?

Use the write() Function to Print Output to a File in Python..
Use the print() Function to Print Output to a File in Python..
Use sys.stdout to Print Output to a File in Python..
Use the contextlib.redirect_stdout() Function to Print Output to a File in Python..

Where does Python store data?

Data so received, is stored in computer's main memory (RAM) in the form of various data structures such as, variables and objects until the application is running. Thereafter, memory contents from RAM are erased.

How does Python store data files?

Use file. write() to save data to a Python file Call open(file, mode) with file as the Python file being saved to and mode as "w" to return a writable file object. With file as the result from the previous step, call file. write(data) with data as a string to save it to file .