详解Python中open()函数指定文件打开方式的用法
文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式。 'r'->只读 这个带'+'号的有点难以理解,上代码感受下。 with open('foo.txt','w+') as f: f.write('barn') f.seek(0) data = f.read() 可以看到,上面这段代码,它不但可以写,还可以读出来。注意要先定位到开头,f.seek(0),不然读出来的是空数据。 不要用二进制模式打开文本文件 hello world 代码一, with open('f.txt','r') as f: print f.readlines() with open('f.txt','rb') as f: print f.readlines() 输出 ['hellon','worldn'] ['hellorn','worldrn'] 代码二, with open('f.txt','rb') as f: data = f.read() with open('f.txt','w') as f: f.write(data) 打开文件,变成了下面这样, hello^M world^M 首先,先理解换行符'n'跟回车符'r'的概念。 因为在不同系统下的换行标识是不一样的。 windows->'rn' unix->'n' mac->'r' 这就是为什么windows下的txt在linux打开的时候行尾会有'^M'。 其实文本文件也是二进制文件,是文本编码的二进制文件,文本文件对一些不可见字符进行了处理,增加可读性。 在python中,可以通过os.linesep获得当前系统的换行标识。比如在windows下,os.linesep是'rn'。 有了上面这些理论依据,就可以解析本文开头代码的“诡异”现象了。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |