Hướng dẫn file manipulation in python
This chapter covers all the basic I/O functions available in Python. For more functions, please refer to standard Python documentation. Show
Printing to the ScreenThe simplest way to produce output is using the print statement where you can pass zero or more expressions separated by commas. This function converts the expressions you pass into a string and writes the result to standard output as follows − #!/usr/bin/python print "Python is really a great language,", "isn't it?" This produces the following result on your standard screen − Python is really a great language, isn't it? Reading Keyboard InputPython provides two built-in functions to read a line of text from standard input, which by default comes from the keyboard. These functions are −
The raw_input FunctionThe raw_input([prompt]) function reads one line from standard input and returns it as a string (removing the trailing newline). #!/usr/bin/python str = raw_input("Enter your input: ") print "Received input is : ", str This prompts you to enter any string and it would display same string on the screen. When I typed "Hello Python!", its output is like this − Enter your input: Hello Python Received input is : Hello Python The input FunctionThe input([prompt]) function is equivalent to raw_input, except that it assumes the input is a valid Python expression and returns the evaluated result to you. #!/usr/bin/python str = input("Enter your input: ") print "Received input is : ", str This would produce the following result against the entered input − Enter your input: [x*5 for x in range(2,10,2)] Recieved input is : [10, 20, 30, 40] Opening and Closing FilesUntil now, you have been reading and writing to the standard input and output. Now, we will see how to use actual data files. Python provides basic functions and methods necessary to manipulate files by default. You can do most of the file manipulation using a file object. The open FunctionBefore you can read or write a file, you have to open it using Python's built-in open() function. This function creates a file object, which would be utilized to call other support methods associated with it. Syntaxfile object = open(file_name [, access_mode][, buffering]) Here are parameter details −
Here is a list of the different modes of opening a file −
The file Object AttributesOnce a file is opened and you have one file object, you can get various information related to that file. Here is a list of all attributes related to file object −
Example#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name print "Closed or not : ", fo.closed print "Opening mode : ", fo.mode print "Softspace flag : ", fo.softspace This produces the following result − Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0 The close() MethodThe close() method of a file object flushes any unwritten information and closes the file object, after which no more writing can be done. Python automatically closes a file when the reference object of a file is reassigned to another file. It is a good practice to use the close() method to close a file. SyntaxfileObject.close() Example#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name # Close opend file fo.close() This produces the following result − Name of the file: foo.txt Reading and Writing FilesThe file object provides a set of access methods to make our lives easier. We would see how to use read() and write() methods to read and write files. The write() MethodThe write() method writes any string to an open file. It is important to note that Python strings can have binary data and not just text. The write() method does not add a newline character ('\n') to the end of the string − SyntaxfileObject.write(string) Here, passed parameter is the content to be written into the opened file. Example#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") fo.write( "Python is a great language.\nYeah its great!!\n") # Close opend file fo.close() The above method would create foo.txt file and would write given content in that file and finally it would close that file. If you would open this file, it would have following content. Python is a great language. Yeah its great!! The read() MethodThe read() method reads a string from an open file. It is important to note that Python strings can have binary data. apart from text data. SyntaxfileObject.read([count]) Here, passed parameter is the number of bytes to be read from the opened file. This method starts reading from the beginning of the file and if count is missing, then it tries to read as much as possible, maybe until the end of file. ExampleLet's take a file foo.txt, which we created above. #!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10); print "Read String is : ", str # Close opend file fo.close() This produces the following result − Read String is : Python is File PositionsThe tell() method tells you the current position within the file; in other words, the next read or write will occur at that many bytes from the beginning of the file. The seek(offset[, from]) method changes the current file position. The offset argument indicates the number of bytes to be moved. The from argument specifies the reference position from where the bytes are to be moved. If from is set to 0, it means use the beginning of the file as the reference position and 1 means use the current position as the reference position and if it is set to 2 then the end of the file would be taken as the reference position. ExampleLet us take a file foo.txt, which we created above. #!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10) print "Read String is : ", str # Check current position position = fo.tell() print "Current file position : ", position # Reposition pointer at the beginning once again position = fo.seek(0, 0); str = fo.read(10) print "Again read String is : ", str # Close opend file fo.close() This produces the following result − Read String is : Python is Current file position : 10 Again read String is : Python is Renaming and Deleting FilesPython os module provides methods that help you perform file-processing operations, such as renaming and deleting files. To use this module you need to import it first and then you can call any related functions. The rename() MethodThe rename() method takes two arguments, the current filename and the new filename. Syntaxos.rename(current_file_name, new_file_name) ExampleFollowing is the example to rename an existing file test1.txt − #!/usr/bin/python import os # Rename a file from test1.txt to test2.txt os.rename( "test1.txt", "test2.txt" ) The remove() MethodYou can use the remove() method to delete files by supplying the name of the file to be deleted as the argument. Syntaxos.remove(file_name) ExampleFollowing is the example to delete an existing file test2.txt − #!/usr/bin/python import os # Delete file test2.txt os.remove("text2.txt") Directories in PythonAll files are contained within various directories, and Python has no problem handling these too. The os module has several methods that help you create, remove, and change directories. The mkdir() MethodYou can use the mkdir() method of the os module to create directories in the current directory. You need to supply an argument to this method which contains the name of the directory to be created. Syntaxos.mkdir("newdir") ExampleFollowing is the example to create a directory test in the current directory − #!/usr/bin/python import os # Create a directory "test" os.mkdir("test") The chdir() MethodYou can use the chdir() method to change the current directory. The chdir() method takes an argument, which is the name of the directory that you want to make the current directory. Syntaxos.chdir("newdir") ExampleFollowing is the example to go into "/home/newdir" directory − #!/usr/bin/python import os # Changing a directory to "/home/newdir" os.chdir("/home/newdir") The getcwd() MethodThe getcwd() method displays the current working directory. Syntaxos.getcwd() ExampleFollowing is the example to give current directory − #!/usr/bin/python import os # This would give location of the current directory os.getcwd() The rmdir() MethodThe rmdir() method deletes the directory, which is passed as an argument in the method. Before removing a directory, all the contents in it should be removed. Syntaxos.rmdir('dirname') ExampleFollowing is the example to remove "/tmp/test" directory. It is required to give fully qualified name of the directory, otherwise it would search for that directory in the current directory. #!/usr/bin/python import os # This would remove "/tmp/test" directory. os.rmdir( "/tmp/test" ) File & Directory Related MethodsThere are three important sources, which provide a wide range of utility methods to handle and manipulate files & directories on Windows and Unix operating systems. They are as follows −
|