python-文件I/O
open(file,mode='r',buffering=-1,encoding=None,errors=None,newline=None,closefd=True,opener=None)
f=open("test") # file object
# Windows <_io.TextIOWrapper name='test' mode='r' encoding='cp936'>
# linux <_io.TextIOWrapper name='test' mode='r' encoding="UTF-8">
print(f.read())
f.close()
文件访问有两种模式:文本模式和二进制模式
文本模式t
字符流,将文件的字节按照某种字符编码理解,按照字符操作,open的默认mode为rt
二进制模式b
字节流,将文件按照字节理解,与字符编码无关,二进制模式操作时,字节操作使用bytes类型
f=open('e:/vbn')
with f:
pass
with open('e:/vbn',mode='rt') as f:
f.read()
print(f.closed)
raise ValueError('zxc')
f=open('e:/vbn',mode='rt')
try:
f.write('zxc')
finally:
f.close()
Windows默认内码GBK不能编码ASCII和中文以外的其他字符