Python – reading and writing files
???
• ???two ways to open a file open and file• ??? How to write to relative and absolute
paths?
To Write a file
• #written to C:\Users\jrw\workspace\Python1
• file = open("newfile.txt", "w")• file.write("Hello World \n")• file.close()
• #written to C:\Users\jrw\workspace\Python1
• file = open("newfile2.txt", "w")• file.write("Hello")• file.write("World")• file.close()• #writes HelloWorld• Note: you need to include “\n” for newline.
“””triple quotes”””
• file = open("newfile3.txt", "w")• file.write("""• Hello• Again""")• file.close()• #will write the following• Hello• Again
What does this write?
• #written to C:\Users\jrw\workspace\Python1
• file = open("newfile4.txt", "w")• file.write("Hello")• file.close()• file = open("newfile4.txt", "w")• file.write("Again")• file.close()
What does this write?
• #written to C:\Users\jrw\workspace\Python1
• file = open("newfile5.txt", "w")
• file.write("Hello")• file.write("Again")• file.close()
Printing to a file
• file = open("newfile5.txt", "w")
• print >> file, "START OF FILE"• print >> file, "END OF FILE"• del file• #this will print directly to a file• #del file deletes the file object and allows
contents to be written to file.
Appending a File
• with open("test.txt", "a") as myfile:
• myfile.write("appended text")
Reading a line of a File
• input1 = file("newfile5.txt", "r")
• print input1.readline()• print input1.readline()• #this will also read the “\n” at the end of line
Read a file
• input1 = file("newfile5.txt", "r")
• print input1.read()• #this will read the remainder of a file
Reads a file into a list
• with open("newfile5.txt") as f:• contents = f.readlines()• • for content in contents:• print content• ??? Read a file into an array. • ??? Number of lines in a file
Iterate through a file (line by line)
• input1 = file("newfile5.txt", "r")
• for line in input1.readlines():• print str(len(line)) + " " + line
• #adds the length of a line to the start of each line
File Exceptions• A file or directory (path) does not exist.• You do not have read/write permissions• Disk error• try:• fh = open("output/testfile1.txt", "w")• fh.write("This is my test file for exception handling!!")
• except IOError:• print "Error: can\'t find file or read data"• else:• print "Written content in the file successfully"
• fh.close()
Enter A Number
• while True:• try:• x = int(raw_input("Please enter a number: "))
• break• except ValueError:• print "Oops! That was no valid number. Try again"
• • print "you entered" + str(x)
Path - join
• import os.path• filePath = os.path.join("output", "file1.txt")
• #output\file1.txt• fh = open(filePath , "w")• fh.write("in file output\file1.txt on Windows machine")
Path - split
• import os.path• filePath = os.path.split("output/file1.txt")
• (pathName, fileName) = filePath• print pathName # output• print fileName # file1.txt
Path – split recursively
• import os.path• def split_fully(path):• parent_path, name = os.path.split(path)
• if name == "":• return (parent_path, )• else:• return split_fully(parent_path) + (name, )
• split_fully("dir1/dir2/file1.txt") • #('', 'dir1', 'dir2', 'file1.txt')
Splitting file extensions
• import os.path• print os.path.splitext("file.txt")
• #('file', '.txt')
If a path exists
• print os.path.exists("C:\Users\jrw\file.txt")
• #returns true or false