Describing a directory. Write a function that takes a directory name and describes the contents of the directory, recursively (in other words, for each file, print the name and size , and proceed down any eventual directories).
Modifying the prompt . Modify your interpreter so that the prompt is, instead of the >>> string, a string describing the current directory and the count of the number of lines entered in the current Python session.
Avoiding regular expressions . Write a program that obeys the same requirements as pepper.py but doesn't use regular expressions to do the job. This is somewhat difficult, but a useful exercise in building program logic.
Wrapping a text file with a class . Write a class that takes a filename and reads the data in the corresponding file as text. Make it so that this class has three methods : paragraph , line , word , each of which take an integer argument, so that if mywrapper is an instance of this class, printing mywrapper.paragraph[0] prints the first paragraph of the file, mywrapper.line[-2] prints the next -to-last line in the file, and mywrapper.word[3] prints the fourth word in the file.
Common tasks . These exercises don't have solutions in Appendix C, but instead are selected from the examples shown in Chapter 9. Try them now before you read Chapter 9 if you wish to be challenged!
How would you make a copy of a list object? How about a dictionary?
How would you sort a list? How about randomizing the order of its elements?
If you've heard of a stack data structure before, how would you code it?
Write a program to count the number of lines in a file.
Write a program that prints all the lines in a file starting with a # character.
Write a program that prints the fourth word in each line of a file.
Write a program that counts the number of times a given word exists in a file.
Write a program that looks for every occurrence of a string in all the files in a directory.