Python Array fromfile() Method
The Python array fromfile() method is used to append items from a file object to an array.
Syntax
Following is the syntax of Python array fromfile() method −
array_name.fromfile(f,n)
Parameters
This method accepts following parameters −
- f : This is the file object from which items are to be appended to the array.
- n : This is the number of items from file that need to be appended to the array.
Return Value
This method does not return any value.
Example 1
Following is the basic example of Python array fromfile() method −
#import array module
import array as arr
#open file object for writing
f = open('my_file.txt','wb')
#write array of integers to file object
arr1=arr.array("i", [1, 2, 3, 4, 5, 6, 7, 8, 9])
print("Array in the file :",arr1 )
arr1.tofile(f)
#close file
f.close()
#open file for reading
f = open('my_file.txt','rb')
#initialize array with integer type
array_one = arr.array("i")
#initialize array with integer type
array_two = arr.array("i")
#read 3 items from file
array_one.fromfile(f,3)
print("Appended array1 :",array_one)
#Moving the cursor to the first position
f.seek(0)
#read 6 items from file
array_two.fromfile(f,6)
print("Appended array2 :",array_two)
#close file
f.close()
Output
Following is the output of the above code −
Array in the file : array('i', [1, 2, 3, 4, 5, 6, 7, 8, 9])
Appended array1 : array('i', [1, 2, 3])
Appended array2 : array('i', [1, 2, 3, 4, 5, 6])
Example 2
Lets try to append an array of unicode charater data type from a file to another array −
import array as arr
arr2=arr.array('u',['a','b','c','d'])
print("Array elements in the file :",arr2)
f=open('fromfile2.txt','wb')
arr2.tofile(f)
f.close()
arr3=arr.array('u')
f1=open("fromfile2.txt","rb")
arr3.fromfile(f1,len(arr2))
print('Array element after appending from file :',arr3)
f.close()
Output
Array elements in the file : array('u', 'abcd')
Array element after appending from file : array('u', 'abcd')
Example 3
In this method, if number of items or elements of file f has less than the n items we get EOF Error.
Here, number of file elements are five and n value mentioned is six
import array as arr
arr3=arr.array('d',[5.6,3.9,23.5,45.7,12.7])
print("Length of the array in the file", len(arr3))
print("Array elements in the file :",arr3)
f=open('fromfile2.txt','wb')
arr3.tofile(f)
f.close()
arr4=arr.array('d')
f1=open("fromfile2.txt","rb")
arr4.fromfile(f1,6)
print('Array element after appending from file :',arr4)
f.close()
Output
Length of the array in the file 5
Array elements in the file : array('d', [5.6, 3.9, 23.5, 45.7, 12.7])
Traceback (most recent call last):
File "E:\pgms\Arraymethods prgs\fromfile1.py", line 63, in
arr4.fromfile(f1,6)
EOFError: read() didn't return enough bytes
python_array_methods.htm
Advertisements