如何用Python处理来自其他程序的数据?
Python open()
方法会打开一个文件,返回文件对象。它使用一个文件名作为唯一的强制参数,其余的都是可选的。
open(file, mode='r', buffering=-1,
encoding=None, errors=None, newline=None, closefd=True, opener=None)
参数说明:
- file:必需,文件路径。
- mode:可选,文件打开模式。
其中,‘r’
表示读(默认),‘w’
表示写,‘b'
表示以二进制模式打开文件,‘a’
表示追加,‘+’
表示读和写都是允许的。
U为通用换行模式,所有的换行符/字符串(\r\n
,\r
,\n
)都会被转换成\n
,所以不推荐。b模式用二进制打开,所以不会把Windows中规范的\r\n
默认换成\n
,所以适合非文本的操作,如图片等。 - buffering:设置缓冲。如果参数是0(或者是False),I/O(输入/输出)就是无缓冲的。如果是1(或者是True),则I/O就是有缓冲的(意味着Python使用内存来代替硬盘,让程序更快,只有使用flush或者close时才会更新硬盘)。大于1的数字代表缓冲区的大小(单位是字节),-1(或者任何负数)代表使用默认缓冲区大小。
Python缓冲的作用一是增加运行效率,避免常用的对象经常被创建又销毁,二是减少内存负担。默认简单整数和短字符是在缓冲区的(即赋值到不同对象后,id相同)。可变对象(列表,字典)等的缓存是没有意义的,而元组也不适合缓存(元素不可变,但元素的元素可能发生变化)。 - encoding:一般使用utf8,encoding is the name of the encoding used to decode or encode the file. This should only be used in text mode.
- errors:报错级别
- newline:区分换行符newline controls how universal newlines mode works (it only applies to text mode). It can be
None
,''
,'\n'
,'\r'
, and'\r\n'
. - closefd:传入的file参数类型。If closefd is False and a file descriptor rather than a filename was given, the underlying file descriptor will be kept open when the file is closed.
- opener:A custom opener can be used by passing a callable as opener. The type of file object returned by the
open()
function depends on the mode.