9.3.2 Reading Data from a Text File

  • Let's read accounts.txt sequentially from beginning to end
In [1]:
with open('accounts.txt', mode='r') as accounts:
    print(f'{"Account":<10}{"Name":<10}{"Balance":>10}')
    for record in accounts:
        account, name, balance = record.split()
        print(f'{account:<10}{name:<10}{balance:>10}')
Account   Name         Balance
100       Jones          24.98
200       Doe           345.67
300       White           0.00
400       Stone         -42.16
500       Rich          224.62

9.3.2 Reading Data from a Text File (cont.)

  • If the contents of a file should not be modified, open the file for reading only
    • Prevents program from accidentally modifying the file
  • Iterating through a file object, reads one line at a time from the file and returns it as a string
  • For each record (that is, line) in the file, string method split returns tokens in the line as a list
    • We unpack into the variables account, name and balance

File Method readlines

  • File object’s readlines method also can be used to read an entire text file
  • Returns each line as a string in a list of strings
  • For small files, this works well, but iterating over the lines in a file object, as shown above, can be more efficient
    • Enables your program to process each text line as it’s read, rather than waiting to load the entire file

Seeking to a Specific File Position

  • While reading through a file, the system maintains a file-position pointer representing the location of the next character to read
  • To process a file sequentially from the beginning several times during a program’s execution, you must reposition the file-position pointer to the beginning of the file
    • Can do this by closing and reopening the file, or
    • by calling the file object’s seek method, as in
      file_object.seek(0)
      
  • The latter approach is faster

©1992–2020 by Pearson Education, Inc. All Rights Reserved. This content is based on Chapter 5 of the book Intro to Python for Computer Science and Data Science: Learning to Program with AI, Big Data and the Cloud.

DISCLAIMER: The authors and publisher of this book have used their best efforts in preparing the book. These efforts include the development, research, and testing of the theories and programs to determine their effectiveness. The authors and publisher make no warranty of any kind, expressed or implied, with regard to these programs or to the documentation contained in these books. The authors and publisher shall not be liable in any event for incidental or consequential damages in connection with, or arising out of, the furnishing, performance, or use of these programs.