open 函數(shù)
1、
文件句柄 = open('文件路徑', '模式')
打開文件時(shí)另凌,需要指定文件路徑和以何等方式打開文件曙强,打開后,即可獲取該文件句柄途茫,日后通過(guò)此文件句柄對(duì)該文件操作碟嘴。
打開文件的模式有:
r ,只讀模式【默認(rèn)】
w囊卜,只寫模式【不可讀娜扇;不存在則創(chuàng)建;存在則清空內(nèi)容栅组;】
x雀瓢, 只寫模式【不可讀;不存在則創(chuàng)建玉掸,存在則報(bào)錯(cuò)】
a刃麸, 追加模式【可讀; 不存在則創(chuàng)建司浪;存在則只追加內(nèi)容泊业;】
"+" 表示可以同時(shí)讀寫某個(gè)文件
r+把沼, 讀寫【可讀,可寫】
w+吁伺,寫讀【可讀饮睬,可寫】
x+ ,寫讀【可讀篮奄,可寫】
a+捆愁, 寫讀【可讀,可寫】
"b"表示以字節(jié)的方式操作
rb 或 r+b
wb 或 w+b
xb 或 w+b
ab 或 a+b
注:以b方式打開時(shí)窟却,讀取到的內(nèi)容是字節(jié)類型昼丑,寫入時(shí)也需要提供字節(jié)類型
2、操作
class TextIOWrapper(_TextIOBase):
"""
Character and line based layer over a BufferedIOBase object, buffer.
encoding gives the name of the encoding that the stream will be
decoded or encoded with. It defaults to locale.getpreferredencoding(False).
errors determines the strictness of encoding and decoding (see
help(codecs.Codec) or the documentation for codecs.register) and
defaults to "strict".
newline controls how line endings are handled. It can be None, '',
'\n', '\r', and '\r\n'. It works as follows:
* On input, if newline is None, universal newlines mode is
enabled. Lines in the input can end in '\n', '\r', or '\r\n', and
these are translated into '\n' before being returned to the
caller. If it is '', universal newline mode is enabled, but line
endings are returned to the caller untranslated. If it has any of
the other legal values, input lines are only terminated by the given
string, and the line ending is returned to the caller untranslated.
* On output, if newline is None, any '\n' characters written are
translated to the system default line separator, os.linesep. If
newline is '' or '\n', no translation takes place. If newline is any
of the other legal values, any '\n' characters written are translated
to the given string.
If line_buffering is True, a call to flush is implied when a call to
write contains a newline character.
"""
def close(self, *args, **kwargs): # real signature unknown
關(guān)閉文件
pass
def fileno(self, *args, **kwargs): # real signature unknown
文件描述符
pass
def flush(self, *args, **kwargs): # real signature unknown
刷新文件內(nèi)部緩沖區(qū)
pass
def isatty(self, *args, **kwargs): # real signature unknown
判斷文件是否是同意tty設(shè)備
pass
def read(self, *args, **kwargs): # real signature unknown
讀取指定字節(jié)數(shù)據(jù)
pass
def readable(self, *args, **kwargs): # real signature unknown
是否可讀
pass
def readline(self, *args, **kwargs): # real signature unknown
僅讀取一行數(shù)據(jù)
pass
def seek(self, *args, **kwargs): # real signature unknown
指定文件中指針位置
pass
def seekable(self, *args, **kwargs): # real signature unknown
指針是否可操作
pass
def tell(self, *args, **kwargs): # real signature unknown
獲取指針位置
pass
def truncate(self, *args, **kwargs): # real signature unknown
截?cái)鄶?shù)據(jù)夸赫,僅保留指定之前數(shù)據(jù)
pass
def writable(self, *args, **kwargs): # real signature unknown
是否可寫
pass
def write(self, *args, **kwargs): # real signature unknown
寫內(nèi)容
pass
def __getstate__(self, *args, **kwargs): # real signature unknown
pass
def __init__(self, *args, **kwargs): # real signature unknown
pass
@staticmethod # known case of __new__
def __new__(*args, **kwargs): # real signature unknown
""" Create and return a new object. See help(type) for accurate signature. """
pass
def __next__(self, *args, **kwargs): # real signature unknown
""" Implement next(self). """
pass
def __repr__(self, *args, **kwargs): # real signature unknown
""" Return repr(self). """
pass
buffer = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
closed = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
encoding = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
errors = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
line_buffering = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
name = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
newlines = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
_CHUNK_SIZE = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
_finalizing = property(lambda self: object(), lambda self, v: None, lambda self: None) # default
3菩帝、管理上下文
為了避免打開文件后忘記關(guān)閉,可以通過(guò)管理上下文憔足,即:
with open('log','r') as f:
...
如此方式胁附,當(dāng)with代碼塊執(zhí)行完畢時(shí)酒繁,內(nèi)部會(huì)自動(dòng)關(guān)閉并釋放文件資源
with open('log1') as obj1, open('log2') as obj2:
pass