open()文件操作

# r/w/x/a          =>字符串
# rb/wb/xb/ab      =>字节类型
# r+ w+ x+ a+       只要加+都表示能读能写

# coding=utf-8   #默认编码格式为utf-8


# open(文件名,模式,编码)   普通打开方式,内部先用utf-8编码转换为字符串

f = open("ha.log")
date = f.read()
f.close()
print(type(date))
b = bytes(date,encoding="utf-8")
print(b)

# 1.只读,r
f = open("ha.log","r")
#f.write("adadsdssddd")   # 只读模式不能写
f.close()

# 2.只写,w ,不可读,若ha.log不存在则创建,若ha.log存在就清空原内容,加入新内容
f = open("ha.log","w")
f.write("1111111")
f.close()

# 3.只写,x ,不可读,若ha.log不存在则创建,若ha.log存在就报错
#f = open("ha2.log","x")
#f.write("1111111")
#f.close()

# 4.追加,a ,可读,若ha.log不存在则创建,若ha.log存在就追加
f = open("ha3.log","a")
f.write("11jkljl")
f.close()

# rb/wb/xb/ab

# 二进制打开方式 ######################################################
f = open("ha.log","rb")   # 只读
date = f.read()     # 得到的是一个二进制编码
f.close()
print(type(date))
print(date)

str_date = str(date,encoding="utf-8")
print(str_date)

# 只写
f = open("ha2.log","wb")   # 只写
f.write(bytes("sdjklsjkls",encoding="utf-8"))    # 先转换为二进制再写入
f.close()

# r+ w+ x+ a+ 只要加+都表示能读能写。

# r+ ,用write,在末尾追加,指正移动到最后。 用read,指针在读完的位置

f = open("ha.log","r+")
date = f.read()
print(type(date),date)
print(f.tell())   # 读取当前指针的位置

f.write("jljkl")

f.seek(0)         # 指针归零
date = f.read()
print(f.tell())
print(type(date),date)
f.close()


# w+ 写读,先写后读,先清空,在写之后,就可以读了
f = open("ha.log","w+")
f.write("接口连接了") # 写入后,指针到了最后
f.seek(0)
date = f.read()

f.close()
print(date)


# x+ 如果文件存在,则报错

# a+ 在打开的同时,指针已经移到了最后
f = open("ha.log","a+")
print(f.tell())
f.seek(0)
date = f.read()
f.close()
print(date)


# r+b, w+b, x+b, a+b 都是以字节形式的,并且是可读可写。

flush()的使用

# 在文件运行未终止时,内容只存在内存中,并没有保存到文件中。
f1 = open("ha.log","a+",encoding="utf-8")
f1.write("hjl")
f1.flush()    # 把内存中的内容刷到硬盘里面,不用等到整个程序结束
i = input(">>>")

# readline 读取一行数据

# truncate 截取数据,仅保存指定之前的数据

# 读取所有行的数据
f = open("ha.log","r")
#data = f.read()
for line in f:
    print(line)
f.close()
#print(data)

with 的使用

# with在文件操作中的使用

with open("ha.log","r") as f:   #不用close,自觉结束
    f.read()

# 同时打开两个文件,把源文件中的内容写到新文件中 python2.7后面版本
with open("源文件","r") as obj1 ,open("新文件","w") as obj2:
    for line in obj1:
        obj2.write(line)




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值