guide to programming with python n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Guide to Programming with Python PowerPoint Presentation
Download Presentation
Guide to Programming with Python

Loading in 2 Seconds...

play fullscreen
1 / 24

Guide to Programming with Python - PowerPoint PPT Presentation


  • 148 Views
  • Uploaded on

Guide to Programming with Python. Chapter Seven Files and Exceptions: The Trivia Challenge Game. Objectives. So far we know how to get user’s input using raw_input() , and print out to the screen using print statements! Now we are going to learn how to use files Read from text files

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Guide to Programming with Python' - guinevere-murphy


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
guide to programming with python

Guide to Programming with Python

Chapter Seven

Files and Exceptions: The Trivia Challenge Game

objectives
Objectives
  • So far we know how to get user’s input using raw_input(), and print out to the screen using print statements!
  • Now we are going to learn how to use files
    • Read from text files
    • Write to text files (permanent storage)
    • Need to open a file before using it, and close it when it is done
  • Read and write more complex data with files using cPickle module (optional!)
  • Intercept and handle errors during a program’s execution

Guide to Programming with Python

we are talking about plain text files
We are Talking about Plain Text Files
  • Plain text file: File made up of only ASCII characters
  • Easy to read strings from plain text files
  • Text files good choice for simple information
    • Easy to edit
    • Cross-platform
    • Human readable!

Guide to Programming with Python

opening and closing a text file
Opening and Closing a Text File

text_file = open("read_it.txt", "r")

text_file.close()

  • Must open before read (or write); then you read from and/or write to the file by referring to the file object
  • Always close file when done reading or writing
  • Can open a file for reading, writing, or both

File object

1st argument: filename

2nd argument: access mode

Guide to Programming with Python

file access modes
File Access Modes

Files can be opened for reading, writing, or both.

Guide to Programming with Python

reading from a text file
Reading from a Text File

oneletter = text_file.read(1) #read one character

fiveletter = text_file.read(5)#read 5 characters

whole_thing = text_file.read()#read the entire file

  • read() file object method
    • Argument: number of characters to be read; if not given, get the entire file
    • Return value: string
  • Each read() begins where the last ended
  • At end of file, read() returns empty string

Guide to Programming with Python

reading a line from a file
Reading a Line from a File

text_file = open("read_it.txt", "r")

line1 = text_file.readline()

line2 = text_file.readline()

line3 = text_file.readline()

  • readline()file object method
    • Returns the entire line if no value passed
    • Once read all of the characters of a line (including the newline), next line becomes current line

text_file.readline(number_of_characters) # a little confusing

Guide to Programming with Python

reading all lines into a list
Reading All Lines into a List

text_file = open("read_it.txt", "r")

lines = text_file.readlines()

#lines is a list!

  • readlines() file object method
    • Reads text file into a list
    • Returns list of strings
    • Each line of file becomes a string element in list

Compared to: read(), which reads the entire file into a string (instead of a list of strings)

Guide to Programming with Python

looping through a text file
Looping Through a Text File

>>> text_file = open("read_it.txt", "r")

>>> for line in text_file:

print line

Line 1

This is line 2

That makes this line 3

  • Can iterate over open text file, one line at a time

Guide to Programming with Python

two more useful string s methods
Two More Useful String’s Methods

e.g., read_it.txt:

Hunter 98 good

Nathan 67 bad

#The following lines for reading names and scores:

text_file = open("read_it.txt", "r")

for line in text_file:

line = line.strip()

(name, score) = line.split()

str.split([sep[, maxsplit]]) -- Return a list of the words in the string, using sep as the delimiter string. If sep is not specified or None, any whitespace string is a separator '1<>2<>3'.split('<>') returns ['1', '2', '3'])

str.strip([chars]) -- Return a copy of the string with the leading and trailing characters removed' spacious '.strip() returns 'spacious'

writing a list of strings to a text file
Writing (a List of) Strings to a Text File

text_file = open("write_it.txt", "w")

text_file.write("Line 1\n")

text_file.write("This is line 2\n")

text_file.write("That makes this line 3\n”)

  • write() file object method writes new characters to file open for writing

text_file = open("write_it.txt", "w")

lines = ["Line 1\n", "This is line 2\n", "That makes this line 3\n"]

text_file.writelines(lines)

  • writelines() file object method writes list of strings to a file

Guide to Programming with Python

pickling unpickling data to from a file optional
Pickling/Unpickling Data to/from a File (Optional!)
  • Pickling: Storing complex objects (e.g., lists, dictionaries) in files
  • cPickle module to pickle and store more complex data in a file

#pickle & write to file

import cPickle

variety = ["sweet", "hot", "dill"]

pickle_file = open("pickles1.dat", "w")

cPickle.dump(variety, pickle_file)

#unpickle and read from a file

pickle_file = open("pickles1.dat", "r")

variety = cPickle.load(pickle_file)

print variety

Guide to Programming with Python

using a shelf to store get pickled data optional
Using a Shelf to Store/Get Pickled Data (Optional!)
  • shelf: An object written to a file that acts like a dictionary, providing random access to a group of objects (pickled)

import shelve

pickles = shelve.open("pickles2.dat”)

pickles["variety"] = ["sweet", "hot", "dill"]

pickles.sync()

#sync() shelf method forces changes to be written to file

for key in pickles.keys()

print key, "-", pickles[key]

#Shelf acts like a dictionary--Can retrieve pickled objects through key

handling exceptions
Handling Exceptions

>>> 1/0

Traceback (most recent call last):

File "<pyshell#0>", line 1, in -toplevel-

1/0

ZeroDivisionError: integer division or modulo by zero

  • Exception: An error that occurs during the execution of a program
  • Exception is raised and can be caught (or trapped) then handled
  • Unhandled, halts program and error message displayed

Guide to Programming with Python

using a try statement with an except clause
Using a try Statement with an except Clause

try:

num = float(raw_input("Enter a number: "))

except:

print "Something went wrong!"

  • try statement sections off code that could raise exception
  • Instead of raising exception, except block run
  • If no exception raised, except block skipped

Guide to Programming with Python

specifying an exception type
Specifying an Exception Type

try:

num = float(raw_input("\nEnter a number: "))

except(ValueError):

print "That was not a number!“

  • Different types of errors raise different types of exceptions
  • exceptclause can specify exception types to handle
  • Attempt to convert "Hi!"to float raises ValueErrorexception
  • Good programming practice to specify exception types to handle each individual case
  • Avoid general, catch-all exception handling

Guide to Programming with Python

selected exception types
Selected Exception Types

Table 7.5: Selected exception types

Guide to Programming with Python

handling multiple exception types
Handling Multiple Exception Types

for value in (None, "Hi!"):

try:

print "Attempting to convert", value, "–>",

print float(value)

except(TypeError, ValueError):

print "Something went wrong!“

  • Can trap for multiple exception types
  • Can list different exception types in a singleexceptclause
  • Code will catch either TypeErrororValueErrorexceptions

Guide to Programming with Python

handling multiple exception types continued
Handling Multiple Exception Types (continued)

for value in (None, "Hi!"):

try:

print "Attempting to convert", value, "–>",

print float(value)

except(TypeError):

print "Can only convert string or number!"

except(ValueError):

print "Can only convert a string of digits!“

  • Another method to trap for multiple exception types is multiple exceptclauses after single try
  • Eachexceptclause can offer specific code for each individual exception type

Guide to Programming with Python

getting an exception s argument
Getting an Exception’s Argument

try:

num = float(raw_input("\nEnter a number: "))

except(ValueError), e:

print "Not a number! Or as Python would say\n", e

  • Exception may have an argument, usually message describing exception
  • Get the argument if a variable is listed before the colon in except statement

Guide to Programming with Python

adding an else clause

handle_it.py

Adding an else Clause

try:

num = float(raw_input("\nEnter a number: "))

except(ValueError):

print "That was not a number!"

else:

print "You entered the number", num

  • Can add single else clause after all except clauses
  • else block executes only if no exception is raised
  • num printed only if assignment statement in the try block raises no exception

Guide to Programming with Python

summary files
Summary (Files)
  • How do you open a file?

file = open(file_name, mode)

  • How do you close a file?

file.close()

  • How do you read all the characters from a line in a file?

the_string = file.readline()

  • How do you read all the lines from a file into a list?

the_list = file.readlines()

  • How do you loop through a file?

for aline in file:

  • How do you write text to a file?

file.write(the_text)

  • How do you write a list of strings to a file?

file.writelines(the_list)

Guide to Programming with Python

summary exceptions
Summary (Exceptions)
  • What is an exception (in Python)?
    • an error that occurs during the execution of a program
  • How do you section off code that could raise an exception (and provide code to be run in case of an exception)?
    • try / except(SpecificException) / else
  • If an exception has an argument, what does it usually contain?
    • a message describing the exception
  • Within a try block, how can you execute code if no exception is raised?
    • else:

Guide to Programming with Python

using modules os sys
Using Modules: os & sys
  • The ‘os’ module provides functions for interacting with the operating system
    • Ref: http://www.network-theory.co.uk/docs/pytut/OperatingSystemInterface.html
    • http://docs.python.org/library/os.html
    • os.getcwd() # Return the current working directory
    • os.chdir() #change the working directory
    • os.path.exists('/usr/local/bin/python')
    • os.path.isfile(‘test.txt’)
    • os.listdir(os.getcwd()) #get a list of the file in current directory
  • The ‘sys’ module: System-specific parameters and functions
    • Ref: http://docs.python.org/library/sys.html
    • sys.argv #The list of command line arguments passed to a Python script
    • sys.exit([arg]) #exit from python