DOC PREVIEW
UW CSE 142 - Python

This preview shows page 1-2-3-4 out of 12 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 12 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Unit 6Reading FilesFile Input TemplateExerciseExercise SolutionRecall: String MethodsString SplittingSplitting into VariablesSlide 9Exercise AnswerWriting FilesSlide 12Unit 6File processingSpecial thanks to Roy McElmurry, John Kurkowski, Scott Shawcroft, Ryan Tucker, Paul Beck for their work.Except where otherwise noted, this work is licensed under:http://creativecommons.org/licenses/by-nc-sa/3.02Reading Filesname = open("filename")–opens the given file for reading, and returns a file objectname.read() - file's entire contents as a stringname.readline() - next line from file as a string name.readlines() - file's contents as a list of lines–the lines from a file object can also be read using a for loop>>> f = open("hours.txt")>>> f.read()'123 Susan 12.5 8.1 7.6 3.2\n456 Brad 4.0 11.6 6.5 2.7 12\n789 Jenn 8.0 8.0 8.0 8.0 7.5\n'3File Input Template•A template for reading files in Python:name = open("filename")for line in name: statements>>> input = open("hours.txt")>>> for line in input:... print(line.strip()) # strip() removes \n123 Susan 12.5 8.1 7.6 3.2456 Brad 4.0 11.6 6.5 2.7 12789 Jenn 8.0 8.0 8.0 8.0 7.54Exercise•Write a function input_stats that accepts a file name as a parameter and that reports the longest line in the file.–example input file, carroll.txt:Beware the Jabberwock, my son,the jaws that bite, the claws that catch,Beware the JubJub bird and shunthe frumious bandersnatch.–expected output:>>> input_stats("carroll.txt")longest line = 42 charactersthe jaws that bite, the claws that catch,5Exercise Solutiondef input_stats(filename): input = open(filename) longest = "" for line in input: if len(line) > len(longest): longest = line print("Longest line =", len(longest)) print(longest)6Recall: String Methods>>> name = "Martin Douglas Stepp">>> name.upper()'MARTIN DOUGLAS STEPP'>>> name.lower().startswith("martin")True>>> len(name)20Java Pythonlengthlen(str)startsWith, endsWith startswith, endswithtoLowerCase, toUpperCase upper, lower,isupper, islower,capitalize, swapcaseindexOf findtrim stripord, chr7String Splitting•split breaks a string into tokens that you can loop over.name.split() # break by whitespacename.split(delimiter) # break by delimiter•join performs the opposite of a splitdelimiter.join(list of tokens)>>> name = "Brave Sir Robin">>> for word in name.split():... print(word)BraveSirRobin>>> "LL".join(name.split("r"))'BLLave SiLL Robin8Splitting into Variables•If you know the number of tokens, you can split them directly into a sequence of variables.var1, var2, ..., varN = string.split()•may want to convert type of some tokens: type(value)>>> s = "Jessica 31 647.28">>> name, age, money = s.split()>>> name'Jessica'>>> int(age)31>>> float(money)647.289Exercise•Suppose we have this hours.txt data:123 Suzy 9.5 8.1 7.6 3.1 3.2456 Brad 7.0 9.6 6.5 4.9 8.8789 Jenn 8.0 8.0 8.0 8.0 7.5•Compute each worker's total hours and hours/day.–Assume each worker works exactly five days.Suzy ID 123 worked 31.4 hours: 6.3 / dayBrad ID 456 worked 36.8 hours: 7.36 / dayJenn ID 789 worked 39.5 hours: 7.9 / day10Exercise Answerhours.py12345678910input = open("hours.txt")for line in input: id, name, mon, tue, wed, thu, fri = line.split() # cumulative sum of this employee's hours hours = float(mon) + float(tue) + float(wed) + \ float(thu) + float(fri) print(name, "ID", id, "worked", \ hours, "hours: ", hours/5, "/ day"11Writing Filesname = open("filename", "w")name = open("filename", "a")–opens file for write (deletes previous contents), or–opens file for append (new data goes after previous data)name.write(str) - writes the given string to the filename.close() - saves file once writing is done>>> out = open("output.txt", "w")>>> out.write("Hello, world!\n")>>> out.write("How are you?")>>> out.close()>>> open("output.txt").read()'Hello, world!\nHow are you?'12Exercise•Write code to read a file of gas prices in USA and Belgium:8.20 3.81 3/21/118.08 3.84 3/28/118.38 3.92 4/4/11...•Output the average gas price for each country to an output file named


View Full Document

UW CSE 142 - Python

Download Python
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Python and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Python 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?