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
  Connecting to Remote Server to read contents of a file ChaitanyaSharma 1 254 May-03-2024, 07:23 AM
Last Post: Pedroski55
  Recommended way to read/create PDF file? Winfried 3 2,957 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,583 Nov-09-2023, 10:56 AM
Last Post: mg24
  read file txt on my pc to telegram bot api Tupa 0 1,166 Jul-06-2023, 01:52 AM
Last Post: Tupa
  parse/read from file seperated by dots giovanne 5 1,161 Jun-26-2023, 12:26 PM
Last Post: DeaD_EyE
  Formatting a date time string read from a csv file DosAtPython 5 1,397 Jun-19-2023, 02:12 PM
Last Post: DosAtPython
  How do I read and write a binary file in Python? blackears 6 7,127 Jun-06-2023, 06:37 PM
Last Post: rajeshgk
  Read csv file with inconsistent delimiter gracenz 2 1,246 Mar-27-2023, 08:59 PM
Last Post: deanhystad
  Read text file, modify it then write back Pavel_47 5 1,696 Feb-18-2023, 02:49 PM
Last Post: deanhystad
  Correctly read a malformed CSV file data klllmmm 2 2,055 Jan-25-2023, 04:12 PM
Last Post: klllmmm

Forum Jump:

User Panel Messages

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