open()函数用于在python中打开一个文件来获取一个文件对象,后续的操作都是相对于该文件对象的。
f = open('your_file.txt','r')
就可以打开一个文件进行操作。第二个参数为对文件的操作方式,’w’是写文件,已存在的同名文件会被清空,不存在则会创建一个;’r’是读取文件,不存在会报错;’a’是在文件尾部添加内容,不存在会创建文件,存在则直接在尾部进行添加;还有’wb’是写二进制文件;’rb’是读取二进制文件,比如图片之类的。
但是这种方式其实不是最好的打开文件的方式,这种方式可能会有这样几个问题:
1、未指定文件编码格式,如果文件编码格式与当前默认的编码格式不一致,那么文件内容的读写将出现错误。
2、如果读写文件有错误,会导致文件无法正确关闭。因为哪怕在后面有
f.close()
声明,但如果打开时出现错误,这种打开方式会有问题。因此,一般情况下,不推荐这种打开文件的方式。
以上问题都是针对python2的。在python3中,open函数可以通过encoding参数指定编码方式,但在2中不能。
在python3下可以直接通过这样来打开一个文件:
f = open('your_file.txt', 'r', encoding='utf-8')
以下两种方法在python2和python3下都可以使用,所以如果你想让你的代码在2和3下都兼容,可以试试下面两种方法:
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()
不知道有没有细心的同学发现以上打开文件的方法有缺陷。下面的方法用于解决刚才提到的第二个问题,也是最推荐的文件打开方式。
import codecs #或者io,使用哪种包无所谓
with codecs.open('your_file.txt', 'r', 'utf-8') as f:
f.write('This method is prior')
使用 with 的上下文环境打开文件。文件操作完成后,无需通过close()关闭文件,文件会自动关闭,安全系数更高。
本文为原创文章,版权归知行编程网所有,欢迎分享本文,转载请保留出处!
你可能也喜欢
- ♥ 如何在python中实现线程计算密集型?12/28
- ♥ 一篇文章带你看懂编码解码01/06
- ♥ Python中eval的使用及注意事项12/17
- ♥ 如何使用 datetime 删除重复的 python3 时间?11/12
- ♥ 如何快速掌握Python函数嵌套的使用?12/28
- ♥ python打开文本文件的方法有哪些?08/26
内容反馈