Python基础之文件操作

python的文件操作还是比较简单的基本分为三步:打开,读写,关闭

文件打开

f=open('db','r') 打开
f.read()  读
f.close()  关闭

为了避免程序员忘记最后一步关闭,优雅的python使用了以下语句:

with open('db','r') as f,open('db2','r') as f2:
    opration...

当然要记得冒号和缩进啦。。

文件操作

文件操作分为5个基本模式:

# f = open('db', 'r') # 只读
# f = open('db', 'w') # 只写,先清空原文件
# f = open('db', 'x') # 文件存在,报错;不存在,创建并只写,用的不多
# f = open('db', 'a') # 追加

还有一个+的模式,但要与基本模式组合使用

r+ 读写
w+ 写读,先清空,后写入,再读取
a+ 追加写入,永远是文件末尾追加

还有一个b,b是以二进制打开,但不能加encoding参数

# f = open('db', 'rb') #以二进制打开,不能加encoding参数,

一般open()参数中,需要加(操作对象,操作模式,encoding编码)

操作时需要注意一定,二进制打开不需要设定enconding,但write写入中文时,需要先将中文反转为二进制:

f=open('db','ab')       ##二进制打开就不需要写编码了
f.write(bytes('李杰',encoding='utf-8'))   #写入时要反转为二进制

f.write() 对文件进行写入操作。

操作文件

 

read()    无参数,全部读取;有参数:b,按字节读取,无b按字符读取
readlines()    将文本每一行读取,并转为列表
readline     读每一行
f.tell()  显示当前指针所在的位置
f.seek(10)  移动指针到目标位置,使用seek()移动指针后,写入文件都后直接覆盖后面的内容,并非插入
f.fileno()  显示文件描述符
f.flush()  将缓冲区的文件强制写硬盘
f.readable()  判断是否可读
f.truncate()  截取数据,使用seek()移动指针,清空指针后面的内容,只保留前面的内容
f.write()  写数据,如果open中有b,按字节,如果无b,按字符

f=open('db','r+')
# print(f.read())
print(())

print(f.tell())
f.seek(f.tell())
print(f.tell())
f.write('')  #直接覆盖
print(f.read())

栗子:

f = open("db", 'ab')
f.write(bytes("李杰", encoding="utf-8"))
f.close()
f = open("db", 'r+', encoding="utf-8")
# f.fileno()
# 如果打开模式无 b,则read,按照字符读取
data = f.read(1)
# tell当前指针所在的位置(字节)
print(f.tell())
# 调整当前指着你的位置(字节)
f.seek(f.tell())
# 当前指针位置开始向覆盖
f.write("888")
f.close()

 

posted @ 2016-05-25 15:10  ccorz  阅读(251)  评论(1编辑  收藏  举报