Question

Please, I want to find the squares of the numbers stored in the .txt file named 'myNumbers.txt'

myNumbers.txt

2
3
4
5
3

I have these python script:

if __name__=="__main__":
     f_in=open("myNumbers.txt", "r")     
     for line in f_in:                  
          line=line.rstrip()
          print float(line)**2

     f_in.close()

I tried this and it is working very well, but I want to know if there is an other way.

Was it helpful?

Solution

Always use the with statement for handling files. And no there's need to use str.strip here, as float will take care of the white-spaces:

with open("mynumbers.txt") as f_in:
    for line in f_in:                  
        print float(line)**2

From docs:

It is good practice to use the with keyword when dealing with file objects. This has the advantage that the file is properly closed after its suite finishes, even if an exception is raised on the way.

float with white-spaces:

>>> float('1.2\n')
1.2
>>> float('  1.2  \n')
1.2

OTHER TIPS

[float(a)**2 for a in open("C:/Users/vjaiswa5/Downloads/a.txt", "r").read().split()]

Returns an array of squared numbers.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top