Python Forum
Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
read file assistance
#1
Hello

i'm trying to read multiple lines in a file and it doesn't seem to work when I assigned my readline() method to a variable( it keeps printing the first line). It only seems to work when i don't assign it to a variable ..any ideas?

heres my code:
# i'm using Python 3.6.2

# Here is it not working
gradesfile = open(gradesfile_path,'r')
readgrades = gradesfile.readline()

print(readgrades)
'*Assigne 1 grades\n'  # This is the output

print(readgrades)
'*Assigne 1 grades\n' # This is the output


# Here is it working when i don't call the variable

print(gradesfile.readline())
'*Assigne 1 grades\n'  # This is the output

print(gradesfile.readline())
'*Columns\n'   # This is the output

print(gradesfile.readline())
'*ID\t   grade\n'  # This is the output
Reply
#2
When you execute readgrades = gradesfile.readline(), the value of readgrades is fixed until you change it. Therefore, it is normal that on lines 5 and 8, the result is the same. You need to execute another readline() statement to change the value.

The best way to do it is to make a loop like:
for readgrades in gradesfile:
    print(readgrades)
If you want to assign a method to a variable, you do it this way (note the presence or absence of parenthesis):
readgrades = gradesfile.readline # without parenthesis, you assign a method
print(readgrades()) # running the method (returning its value) requires parenthesis
print(readgrades())
Reply
#3
(Dec-30-2017, 10:44 AM)squenson Wrote: When you execute readgrades = gradesfile.readline(), the value of readgrades is fixed until you change it. Therefore, it is normal that on lines 5 and 8, the result is the same. You need to execute another readline() statement to change the value.

The best way to do it is to make a loop like:
for readgrades in gradesfile:
    print(readgrades)
If you want to assign a method to a variable, you do it this way (note the presence or absence of parenthesis):
readgrades = gradesfile.readline # without parenthesis, you assign a method
print(readgrades()) # running the method (returning its value) requires parenthesis
print(readgrades())





makes sense, thanks for the assistance, much appreciated.
Reply


Possibly Related Threads…
Thread Author Replies Views Last Post
  Recommended way to read/create PDF file? Winfried 3 2,905 Nov-26-2023, 07:51 AM
Last Post: Pedroski55
  python Read each xlsx file and write it into csv with pipe delimiter mg24 4 1,479 Nov-09-2023, 10:56 AM
Last Post: mg24
  read file txt on my pc to telegram bot api Tupa 0 1,137 Jul-06-2023, 01:52 AM
Last Post: Tupa
  parse/read from file seperated by dots giovanne 5 1,128 Jun-26-2023, 12:26 PM
Last Post: DeaD_EyE
  Formatting a date time string read from a csv file DosAtPython 5 1,305 Jun-19-2023, 02:12 PM
Last Post: DosAtPython
  How do I read and write a binary file in Python? blackears 6 6,726 Jun-06-2023, 06:37 PM
Last Post: rajeshgk
  Read csv file with inconsistent delimiter gracenz 2 1,208 Mar-27-2023, 08:59 PM
Last Post: deanhystad
  Read text file, modify it then write back Pavel_47 5 1,640 Feb-18-2023, 02:49 PM
Last Post: deanhystad
  Correctly read a malformed CSV file data klllmmm 2 1,975 Jan-25-2023, 04:12 PM
Last Post: klllmmm
  How to read csv file update matplotlib column chart regularly SamLiu 2 1,075 Jan-21-2023, 11:33 PM
Last Post: SamLiu

Forum Jump:

User Panel Messages

Announcements
Announcement #1 8/1/2020
Announcement #2 8/2/2020
Announcement #3 8/6/2020