Python Input and Output Copyright Software Carpentry 2010
- Slides: 87
Python Input and Output Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See http: //software-carpentry. org/license. html for more information.
Been using print to see what programs are doing Python Input and Output
Been using print to see what programs are doing How to save data to files? Python Input and Output
Been using print to see what programs are doing How to save data to files? And read data from them? Python Input and Output
Been using print to see what programs are doing How to save data to files? And read data from them? Python's solution looks very much like C's Python Input and Output
Been using print to see what programs are doing How to save data to files? And read data from them? Python's solution looks very much like C's – A file is a sequence of bytes Python Input and Output
Been using print to see what programs are doing How to save data to files? And read data from them? Python's solution looks very much like C's – A file is a sequence of bytes – But it's often more useful to treat it as a sequence of lines Python Input and Output
Sample data file Three things are certain: Death, taxes, and lost data. Guess which has occurred. Errors have occurred. We won't tell you where or why. Lazy programmers. With searching comes loss and the presence of absence: "My Thesis" not found. A crash reduces your expensive computer to a simple stone. Python Input and Output
How many characters in a file? Python Input and Output
How many characters in a file? bytes Python Input and Output
How many characters in a file? bytes Python Assume 1 -to-1 for now Input and Output
How many characters in a file? bytes Assume 1 -to-1 for now Revisit later Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Create a file object Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) File to connect to Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) To read Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Now holds file object Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Read entire content of file into a string Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Now has a copy of all the bytes that were in the file Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Disconnect from the file Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Disconnect from the file Not strictly necessary in small programs, but good practice Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Report how many characters were read Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) Report how many characters were read bytes Python Input and Output
How many characters in a file? reader = open('haiku. txt', 'r') data = reader. read() reader. close() print len(data) 293 Python Input and Output
If the file might be large, better to read in chunks Python Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() Python Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() Python Read (at most) 64 bytes Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() Python Read (at most) 64 bytes Or the empty string if there is no more data Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() Python Keep looping as long as the last read returned some data Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() Python Do something with the data Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() Python (Try to) reload Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() Should be 0 (or the loop would still be running) Python Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() 64 64 37 0 Python Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() 64 Don't do this unless 64 64 64 37 0 Python Input and Output
If the file might be large, better to read in chunks reader = open('haiku. txt', 'r') data = reader. read(64) while data != '': print len(data) data = reader. read(64) print len(data) reader. close() 64 Don't do this unless the file really 64 64 might be very large (or infinite) 64 37 0 Python Input and Output
More common to read one line at a time Python Input and Output
More common to read one line at a time reader = open('haiku. txt', 'r') line = reader. readline() total = 0 count = 0 while line != '': count += 1 total += len(line) line = reader. readline() reader. close() print 'average', float(total) / float(count) Python Input and Output
More common to read one line at a time reader = open('haiku. txt', 'r') line = reader. readline() Read a single line total = 0 count = 0 while line != '': count += 1 total += len(line) line = reader. readline() reader. close() print 'average', float(total) / float(count) Python Input and Output
More common to read one line at a time reader = open('haiku. txt', 'r') line = reader. readline() total = 0 count = 0 while line != '': Keep looping until count += 1 total += len(line) no more lines in file line = reader. readline() reader. close() print 'average', float(total) / float(count) Python Input and Output
More common to read one line at a time reader = open('haiku. txt', 'r') line = reader. readline() total = 0 count = 0 while line != '': count += 1 total += len(line) line = reader. readline() reader. close() print 'average', float(total) / float(count) Python (Try to) reload Input and Output
More common to read one line at a time reader = open('haiku. txt', 'r') line = reader. readline() total = 0 count = 0 while line != '': count += 1 total += len(line) line = reader. readline() reader. close() print 'average', float(total) / float(count) 19. 53333333 Python Input and Output
Often more convenient to read all lines at once Python Input and Output
Often more convenient to read all lines at once reader = open('haiku. txt', 'r') contents = reader. readlines() reader. close() total = 0 count = 0 for line in contents: count += 1 total += len(line) print 'average', float(total) / float(count) Python Input and Output
Often more convenient to read all lines at once reader = open('haiku. txt', 'r') contents = reader. readlines() reader. close() total = 0 count = 0 for line in contents: count += 1 total += len(line) print 'average', float(total) / float(count) Python All lines in file as list of strings Input and Output
Often more convenient to read all lines at once reader = open('haiku. txt', 'r') contents = reader. readlines() reader. close() total = 0 count = 0 for line in contents: count += 1 total += len(line) print 'average', float(total) / float(count) Python Loop over lines with for Input and Output
Often more convenient to read all lines at once reader = open('haiku. txt', 'r') contents = reader. readlines() reader. close() total = 0 count = 0 for line in contents: count += 1 total += len(line) print 'average', float(total) / float(count) 19. 53333333 Python Input and Output
"Read lines as list" + "loop over list" is common idiom Python Input and Output
"Read lines as list" + "loop over list" is common idiom So Python provides "loop over lines in file" Python Input and Output
"Read lines as list" + "loop over list" is common idiom So Python provides "loop over lines in file" reader = open('haiku. txt', 'r') total = 0 count = 0 for line in reader: count += 1 total += len(line) reader. close() print 'average', float(total) / float(count) Python Input and Output
"Read lines as list" + "loop over list" is common idiom So Python provides "loop over lines in file" reader = open('haiku. txt', 'r') total = 0 count = 0 Assign lines of text in file for line in reader: to loop variable one by one count += 1 total += len(line) reader. close() print 'average', float(total) / float(count) Python Input and Output
"Read lines as list" + "loop over list" is common idiom So Python provides "loop over lines in file" reader = open('haiku. txt', 'r') total = 0 count = 0 for line in reader: count += 1 total += len(line) reader. close() print 'average', float(total) / float(count) 19. 53333333 Python Input and Output
Python Input and Output
Put data in a file using write or writelines Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() Same function Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() File to write to Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() File to write to Created if it doesn't exist Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() For writing instead of reading Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() Write a single string Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() Write each string in a list Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() elements. He. Ne. Ar. Kr Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elements') writer. writelines(['He', 'Ne', 'Ar', 'Kr']) writer. close() elements. He. Ne. Ar. Kr Python only writes what you tell it to Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elementsn') writer. writelines(['Hen', 'Nen', 'Arn', 'Krn']) writer. close() Have to provide end-of-line characters yourself Python Input and Output
Put data in a file using write or writelines writer = open('temp. txt', 'w') writer. write('elementsn') writer. writelines(['Hen', 'Nen', 'Arn', 'Krn']) writer. close() elements He Ne Ar Kr Python Input and Output
Often simpler to use print >> Python Input and Output
Often simpler to use print >> writer = open('temp. txt', 'w') print >> writer, 'elements' for gas in ['He', 'Ne', 'Ar', 'Kr']: print >> writer, gas writer. close() Python Input and Output
Often simpler to use print >> writer = open('temp. txt', 'w') print >> writer, 'elements' for gas in ['He', 'Ne', 'Ar', 'Kr']: print >> writer, gas writer. close() Specify open file after >> Python Input and Output
Often simpler to use print >> writer = open('temp. txt', 'w') print >> writer, 'elements' for gas in ['He', 'Ne', 'Ar', 'Kr']: print >> writer, gas writer. close() print automatically adds the newline Python Input and Output
Copy a file Python Input and Output
Copy a file reader = open('haiku. txt', 'r') data = reader. read() reader. close() writer = open('temp. txt', 'w') write(data) writer. close() Python Input and Output
Copy a file reader = open('haiku. txt', 'r') data = reader. read() reader. close() writer = open('temp. txt', 'w') write(data) writer. close() Python Read all Input and Output
Copy a file reader = open('haiku. txt', 'r') data = reader. read() reader. close() writer = open('temp. txt', 'w') write(data) writer. close() Python Write all Input and Output
Copy a file reader = open('haiku. txt', 'r') data = reader. read() reader. close() writer = open('temp. txt', 'w') write(data) writer. close() Probably won't work with a terabyte. . . Python Input and Output
Copy a file reader = open('haiku. txt', 'r') data = reader. read() reader. close() writer = open('temp. txt', 'w') write(data) writer. close() Probably won't work with a terabyte. . . …but we probably don't care Python Input and Output
Copy a file (version 2) Python Input and Output
Copy a file (version 2) reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') for line in reader: writer. write(line) reader. close() writer. close() Python Input and Output
Copy a file (version 2) reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') for line in reader: writer. write(line) reader. close() writer. close() Assumes the file is text Python Input and Output
Copy a file (version 2) reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') for line in reader: writer. write(line) reader. close() writer. close() Assumes the file is text Or at least that the end-of-line character appears frequently Python Input and Output
This version doesn't make an exact copy Python Input and Output
This version doesn't make an exact copy reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') for line in reader: print >> writer, line reader. close() writer. close() Python Input and Output
This version doesn't make an exact copy reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') for line in reader: print >> writer, line reader. close() writer. close() Python keeps the newline when reading Python Input and Output
This version doesn't make an exact copy reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') for line in reader: print >> writer, line reader. close() writer. close() Python keeps the newline when reading print automatically adds a newline Python Input and Output
This version doesn't make an exact copy reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') for line in reader: print >> writer, line reader. close() writer. close() Python keeps the newline when reading print automatically adds a newline Result is double-spaced output Python Input and Output
Copy a file (version 3) Python Input and Output
Copy a file (version 3) BLOCKSIZE = 1024 reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') data = reader. read(BLOCKSIZE) while len(data) > 0: writer. write(data) data = reader. read(BLOCKSIZE) reader. close() writer. close() Python Input and Output
Copy a file (version 3) BLOCKSIZE = 1024 reader = open('haiku. txt', 'r') writer = open('temp. txt', 'w') data = reader. read(BLOCKSIZE) while len(data) > 0: writer. write(data) data = reader. read(BLOCKSIZE) reader. close() writer. close() (Needlessly? ) harder to understand Python Input and Output
created by Greg Wilson October 2010 Copyright © Software Carpentry 2010 This work is licensed under the Creative Commons Attribution License See http: //software-carpentry. org/license. html for more information.
- Nnn design
- Principles of input output software
- Copyright 2010 pearson education inc
- Copyright 2010
- Copyright 2010
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- Copyright 2010
- Nwoz
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- 2010 pearson education inc
- Copyright 2010 pearson education inc
- Copyright 2010 pearson education inc
- Pearson education inc all rights reserved
- Form design in system analysis and design
- 4 automatic input devices
- Types of virtual reality
- Vat input
- Input vs output vat
- Input vat and output vat
- What is output
- Is a printer input or output
- Conclusion for input and output devices of computer
- Modern input devices
- Advantages of input and output devices
- Output devices notes
- Output devices conclusion
- The user output in hci is occurred through
- Computer science input and output
- Is system unit an output device
- Output device
- Input of krebs cycle
- Vr input and output devices
- Input and output of krebs cycle
- Input transformation output process
- Input and output devices wiring for plc
- Specialized input devices examples
- Keyboard.nextstring
- Is domain input or output
- Input devices
- Output
- Java input and output statements
- Input algorithm example
- Output knowledge
- Conclusion of input and output devices
- Productivity = input/output
- Chapter 6 input and output
- Input devices
- Alu input and output
- How do you write an input and output algorithm?
- Vonnewman
- Serial port of 8051 is
- Peripheral input device
- 電腦五大單元
- Quantity supplied vs supply
- Inputs to the citric acid cycle
- Energy input and output nutrition
- Hardware input processing and output devices
- Hardware input processing and output devices
- Chapter 2 input processing and output
- Java file input and output
- Foramen interventriculare
- Console input and output in java
- Input/output
- Input and output statement
- Sensory input and motor output
- Input and output devices project
- Combination input and output devices
- Input
- Boiler input and output
- Roughly-tuned input definition
- Output python
- Input format python
- An input validation loop is sometimes called
- Direct input python
- Dependent variable
- Io burst
- Scanner as input device
- The ratio of input distance to output distance
- Limitations of the study examples
- Perkakasan input
- Laser printer output device
- Input, proses, output outcome kesehatan
- Ipo research paradigm
- Input output organization
- The keyboard mouse scanner digital camera or