[Tutor] new to python

N6Ghost n6ghost at gmail.com
Mon Jul 24 18:32:40 EDT 2017



On 7/23/2017 1:03 AM, Alan Gauld via Tutor wrote:
> On 23/07/17 07:26, N6Ghost wrote:
>
>> f = open("C:\coderoot\python3\level1\inputfile.txt", 'r')
>> for line in file:
> Note that you have no variable called 'file'.
> So this line doesn't make sense.
>
>>       for line in f:
>>           print(line.rstripe())
> This bit will work if you omit the line above and
> fix the indentation. (and remove the 'e' from strip()
>
>>           f.close()
> This should be outside the loop, you don't want
> to close the file after every line.
>
> Finally, there is another way to do this which
> is considered 'better'/more Pythonic:
>
> with open("C:\coderoot\python3\level1\inputfile.txt", 'r') as f:
>       for line in f:
>           print(line.strip())
>
> Notice with this construct the closing of the file is
> handled for you.
>
>> any idea why that does not work?
> When posting questions always include the full error text.
> Although apparently cryptic it actually contains a lot of
> useful detail which saves us from making guesses.
>

update code:
f = open("C:\coderoot\python3\level1\inputfile.txt", 'r')
for line in f:
     for line in f:
         print(line.rstripe())

         f.close()


C:\coderoot\python3\level1>python secondscript.py
Traceback (most recent call last):
   File "secondscript.py", line 5, in <module>
     print(line.rstripe())
AttributeError: 'str' object has no attribute 'rstripe'






More information about the Tutor mailing list