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
  How to read a file as binary or hex "string" so that I can do regex search? tatahuft 3 1,257 Dec-19-2024, 11:57 AM
Last Post: snippsat
  Read TXT file in Pandas and save to Parquet zinho 2 1,353 Sep-15-2024, 06:14 PM
Last Post: zinho
  Pycharm can't read file Genericgamemaker 5 1,712 Jul-24-2024, 08:10 PM
Last Post: deanhystad
  Python is unable to read file Genericgamemaker 13 4,149 Jul-19-2024, 06:42 PM
Last Post: snippsat
  Connecting to Remote Server to read contents of a file ChaitanyaSharma 1 3,440 May-03-2024, 07:23 AM
Last Post: Pedroski55
  Recommended way to read/create PDF file? Winfried 3 5,247 Nov-26-2023, 07:51 AM
Last Post: Pedroski55
  python Read each xlsx file and write it into csv with pipe delimiter mg24 4 4,021 Nov-09-2023, 10:56 AM
Last Post: mg24
  read file txt on my pc to telegram bot api Tupa 0 2,762 Jul-06-2023, 01:52 AM
Last Post: Tupa
  parse/read from file seperated by dots giovanne 5 2,357 Jun-26-2023, 12:26 PM
Last Post: DeaD_EyE
  Formatting a date time string read from a csv file DosAtPython 5 5,316 Jun-19-2023, 02:12 PM
Last Post: DosAtPython

Forum Jump:

User Panel Messages

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