Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to save a list to a file and read it as a list type?

Say I have the list score=[1,2,3,4,5] and it gets changed whilst my program is running. How could I save it to a file so that next time the program is run I can access the changed list as a list type?

I have tried:

score=[1,2,3,4,5]  with open("file.txt", 'w') as f:     for s in score:         f.write(str(s) + '\n')  with open("file.txt", 'r') as f:     score = [line.rstrip('\n') for line in f]   print(score) 

But this results in the elements in the list being strings not integers.

like image 975
Oceanescence Avatar asked Jan 02 '15 16:01

Oceanescence


People also ask

How do I make a list in a text file?

Method 2: write in a Text file In Python using writelines() The file is opened with the open() method in w mode within the with block, the argument will write text to an existing text file with the help of readlines(). The with block ensures that once the entire block is executed the file is closed automatically.

How do you load a list into a file in Python?

To read a file into a list in Python, use the file. read() function to return the entire content of the file as a string and then use the str. split() function to split a text file into a list. To read a file in Python, use the file.

How do you read a file in Python and store it in a list?

You can read a text file using the open() and readlines() methods. To read a text file into a list, use the split() method.


1 Answers

You can use the pickle module for that. This module has two methods,

  1. Pickling(dump): Convert Python objects into a string representation.
  2. Unpickling(load): Retrieving original objects from a stored string representation.

https://docs.python.org/3.3/library/pickle.html

Code:

>>> import pickle >>> l = [1,2,3,4] >>> with open("test", "wb") as fp:   #Pickling ...   pickle.dump(l, fp) ...  >>> with open("test", "rb") as fp:   # Unpickling ...   b = pickle.load(fp) ...  >>> b [1, 2, 3, 4] 

Also Json

  1. dump/dumps: Serialize
  2. load/loads: Deserialize

https://docs.python.org/3/library/json.html

Code:

>>> import json >>> with open("test", "w") as fp: ...     json.dump(l, fp) ... >>> with open("test", "r") as fp: ...     b = json.load(fp) ... >>> b [1, 2, 3, 4] 
like image 77
Vivek Sable Avatar answered Oct 20 '22 04:10

Vivek Sable