您的位置:首页 > 编程语言 > Python开发

python file-like Object:文件读写

2018-07-23 17:33 861 查看
官网对文件操作解释:
open
(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
CharacterMeaning
'r'
open for reading (default)
'w'
open for writing, truncating the file first
'x'
open for exclusive creation, failing if the file already exists
'a'
open for writing, appending to the end of the file if it exists
'b'
binary mode
't'
text mode (default)
'+'
open a disk file for updating (reading and writing)
'U'
universal newlines mode (deprecated)
The default mode is
'r'
(open for reading text, synonym of
'rt'
). For binary read-write access, the mode
'w+b'
opens and truncates the file to 0 bytes.
'r+b'
opens the file without truncation.
https://docs.python.org/3/library/functions.html#open
文本读写操作:open(), close(), read(), readlines(),

一、普通操作,open(),read(),close()
#!/usr/bin/python
#coding=utf-8

import logging

try:
f = open('/home/seeing-zynq/Documents/Temp/Test/mydict.py', 'r')
print f.read();
print 'read'
except Exception as e:
logging.exception(e)
print 'error'
raise
finally:
if f:
f.close()
print 'OK'
运行结果:
#!/usr/bin/python
# -*- coding: utf-8 -*-

class Dict(dict):

def __init__(self, **kw):
super().__init__(**kw)

def __getattr__(self, key):
try:
return self[key]
except KeyError:
raise AttributeError(r"'Dict' object has no attribute '%s'" % key)

def __setattr__(self, key, value):
self[key] = value

read
OK


二、read()完后自动close()
with open('/home/seeing-zynq/Documents/Temp/Test/mydict.py', 'r') as f:
print (f.read())
运行结果:
#!/usr/bin/python
# -*- coding: utf-8 -*-

class Dict(dict):

def __init__(self, **kw):
super().__init__(**kw)

def __getattr__(self, key):
try:
return self[key]
except KeyError:
raise AttributeError(r"'Dict' object has no attribute '%s'" % key)

def __setattr__(self, key, value):
self[key] = value


三、为避免read()未知容量的大文件,保险起见用readlines().
print '------------------------------------'
print '-----------------------------------'
f = open('/home/seeing-zynq/Documents/Temp/Test/mydict.py', 'r')
for line in f.readlines():
print(line.strip())  ##strip会将前面首字符前的空格去掉,造成行句没有缩进
f.close()
print 'over'
运行结果:
------------------------------------
-----------------------------------
#!/usr/bin/python # -*- coding: utf-8 -*- class Dict(dict): def __init__(self, **kw): super().__init__(**kw) def __getattr__(self, key): try: return self[key] except KeyError: raise AttributeError(r"'Dict' object has no attribute '%s'" % key) def __setattr__(self, key, value): self[key] = value

over


四、读二进制文件,如图片,视频等
>>> f = open('/Users/michael/test.jpg', 'rb')
>>> f.read()
b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节


五、write()
with open('/home/seeing-zynq/Documents/Temp/IO/a.txt', 'w') as f:
f.write('haha')

with open('/home/seeing-zynq/Documents/Temp/IO/a.txt', 'r') as f:
print (f.read())
"file.py" 37L, 758C wri
运行结果:
haha
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python file like