io操作

一 文件的读写

>>> f = open('/home/denny/text.txt', 'r')
>>> f.read()
'hello world'
>>> f.close()
open函数传入 文件路径/文件名, 标识符 就打开的文件(标识符可以是 r  rb<二进制文件,图片视频等>)
如果文件不存在就会出现段错误
 
可以用try ...  finally 来实现
 
try:
    f = open('/home/denny/test.txt', 'r')
    print(f.read())
finally:
    if f:
        f.close()
 
try ... finally 的升级版
 
with open('/home/denny/test.txt', 'r') as f:
    print(f.read())
 
read()  一次读完所有内容
readline() 一次读一行
readlines() 一次读完并将所用的内容按行返回list
 
 
通常open文件的时候,如果文件不是utf-8 编码的,通常会传入字符编码
>>> f = open('/home/denny/gbk.txt', 'r', encoding='gbk')
 
如果文件中有其他 不规范的编码,可以做到或略错误
>>> f = open('/home/denny/gbk.txt', 'r', encoding='gbk',errors = 'ignore')
 
 
二 写文件
>>> f = open('/home/denny/test.txt', 'w')
>>>f.write("hello, world")
>>>f.close()
 
 
with open('/home/denny/test.txt','w') as f:
    f.write('hello, world!')
 
 
StringIO<内存中读写string>和 BytesIO<内存中读写bytes>
 
基本程序
from io import StringIO
f = StringIO()
f.write(‘hello’)
f.write('')
print(f.getvalue())
 
from io import BytesIO
f = ByteIO()
f.write('中文'.encode('utf-8'))
print(f.getvalue())
 
 
目录操作
 
import os
 
os.mkdir("/home/denny/testdir")
os.rmdir('/home/denny/testdir')
 
路径合并
os.path.join('/home/denny','testdir')  linux 和 window不一样 斜杠方向
路径拆分
os.path.split('/home/denny/testdir.txt')
('/home/denny/testdir','.txt')
重命名
os.rename('test.txt','test.py')
os.remove('test.py')
 
 
序列化  反序列化(为了存储和加载)
    JSON 类型(本地存储和网络加载)
 
posted @ 2018-05-28 23:38  cjcai1  阅读(66)  评论(0)    收藏  举报