代码改变世界

2018.3.12学习笔记(文件处理)

2018-03-13 00:59  冒牌权限  阅读(96)  评论(0)    收藏  举报

文件处理open()

#!/usr/bin/env python
# -*- coding:utf-8 -*-

#本节建议写代码调试来理解,光说很麻烦
#打开文件open(文件名,[模式],[编码])
#默认只读模式
# r,只读模式【默认模式】
# w,只写模式【不可读;不存在则创建;存在则清空内容】
# x,只写模式【不可读;不存在则创建;存在则报错】
# a,追加模式【不可读;不存在则创建;存在则只追加内容】
# r+,读写
# w+,写读
# x+,写读
# a+,写读
# rb,以字节的方式读
# wb,以字节的方式写
# xb,以字节的方式写
# ab,以字节的方式追加
f = open('/etc/net.txt','r',encoding='utf-8')
data = f.read()
f.close()
print(type(date))

f = open('ha.log','wb')
f.write(butes('天朝',encoding='utf-8'))
f.close()

f.tell()#获取指针的位置
f.seek(num)#调整指针的位置

 操作文件

#!usr/bin/env python
# -*- coding:utf-8 -*-

#刷新文件内部缓存区flush(),简单理解为将内存的数据刷新至硬盘
f1 = open('D:\\HST\\test\\test.txt','a+')
f1.seek(0)
f1.write("what's the fuck")
f1.flush()
f1.seek(0)
pt = f1.read()
f1.close()
print(pt)

#截取truncate(),截取指针范围的数据
f2 = open('D:\\HST\\test\\test.txt','r+')
print(f2.tell())
f2.seek(6)#seek()在python2.7没有返回值,这里如果直接print(f2.seek(6)),输出为None,在python3.7中则有返回值,输出6
print(f2.tell())
f2.truncate()
f2.seek(0)
qt = f2.read()
f2.close()
print(qt)

#一行一行输出,输出所有行
f = open('D:\\HST\\test\\test.txt','r')
for line in f:
    print(line)
f.close()

#省去close()操作,with open() as 变量:,并且此格式支持同时打开两个文件
#with open('D:\\HST\\test\\test.txt','w+') as f1 , open('D:\\HST\\test\\test.txt','w+') as f2: