码迷,mamicode.com
首页 > 其他好文 > 详细

io操作

时间:2018-05-29 01:40:21      阅读:164      评论:0      收藏:0      [点我收藏+]

标签:重命名   lis   block   std   with open   name   打开   line   内容   

一 文件的读写

>>> 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 类型(本地存储和网络加载)
 

io操作

标签:重命名   lis   block   std   with open   name   打开   line   内容   

原文地址:https://www.cnblogs.com/cjcai-blogs/p/9102936.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!