How to open a file with python?
Opening a file under python is super easy. You don’t need to import any packages. You can open a file for operation by directly typing
f = open('your_file.txt','r')
. The second parameter is the operation mode of the file. 'w' is to write the file. The existing file with the same name will be cleared. If it does not exist, it will be created; 'r' is to read the file. If it does not exist, an error will be reported; 'a' It is to add content at the end of the file. If it does not exist, the file will be created. If it exists, it will be added directly to the end; and 'wb' is to write binary files; 'rb' is to read binary files, such as pictures.
But this method is actually not the best way to open a file. This method may have the following problems:
1. The file encoding format is not specified. If the file encoding format is different from If the current default encoding format is inconsistent, there will be errors in reading and writing the file content.
2. If there are errors in reading and writing files, the file will not be closed correctly. Because even if there is a
f.close()
statement at the end, if an error occurs when opening, there will be problems with this opening method. Therefore, generally speaking, this way of opening files is not recommended. (I have actually been using this method before. Although I also know other methods, I have never used it because it is too troublesome...)
The above questions are all for python2. Under python3, the open function can be passed The encoding parameter specifies the encoding method, which is not possible in 2.
You can open a file directly under python3 by doing this:
f = open('your_file.txt', 'r', encoding='utf-8')
The following two methods can be used under both python2 and python3, so if you want your code to work under 2 and python3 If all 3 are compatible, you can try the following two methods:
import codecs f1 = codecs.open('your_file1.txt', 'r', 'utf-8') #使用codecs包 f1.close() import io f2 = io.open('your_file2.txt', 'r', encoding='utf-8') #使用io包 f2.close()
I don’t know if any careful students have discovered that the above methods of opening files are flawed. The following method is used to solve the problem just mentioned. The second question is also the most recommended way to open files.
import codecs #或者io,使用哪种包无所谓 with codecs.open('your_file.txt', 'r', 'utf-8') as f: f.write('This method is prior')
Use the with context method to open the file. After the file operation is completed, there is no need to close the file through close(). The file will be closed automatically, and the safety factor is higher.
Related recommendations: "Python Tutorial"
The above is the detailed content of How to open a file with python. For more information, please follow other related articles on the PHP Chinese website!