文件操作

'''
read([size])方法从文件当前位置起读取size个字节,若无参数size,则表示读取至文件结束为止,它范围为字符串对象
readline()方法每次读出一行内容,读取时占用内存小,比较适合大文件,该方法返回一个字符串对象
readlines()方法读取整个文件所有行,保存在一个列表(list)变量中,每行作为一个元素,但读取大文件会比较占内存
'''

1、读操作
f = open('将进酒','r',encoding='utf-8')
data = f.read(4)#read后可以加数字,前几个字符
print(data)
f.close()

2、写操作
f = open('将进酒2','a',encoding='utf-8')#w操作直接会清空打开的文件,a(append)操作会在文件末添加(追加)
f.write('\nhanfei is handsome\n')
f.write('xxx is beautiful')
f.close()

3、读操作
f = open('将进酒','r',encoding='utf-8')
data = f.readline()#按行取
data1 = f.readline()#按行取
print(data1)
print(f)
data = f.readlines()#按行取,并存为一个列表
print(data)
5、修改某行内容
number=0
for i in data:#修改某行内容
number+=1
if number==6:
i=(''.join((i.strip(),'添加内容qqqq')))
print(i.strip())

for i in f:#常用取用方法,for循环把f做成一个迭代器,用一个取一个
number+=1
if number==6:
i=(''.join((i.strip(),'添加内容qqqq')))
print(i.strip())

print(f.tell())#显示光标位置
print(f.read(5))#一个中文占3个字符
print(f.tell())

f.seek(0)#光标跳到指定位置
print(f.read(3))
f.close()
f.flush()#把缓存里面的数据转到磁盘里面


for i in range(20):
sys.stdout.write('#')
sys.stdout.flush()
time.sleep(0.1)

for i in range(20):
print('#',end='',flush=True)
time.sleep(0.1)
f = open('将进酒3','w',encoding='utf-8')
f.write('hello world')
f.truncate(4)#w是清空,a是保留多少个字符
f.close()

6、r+: w+ a+ ---->>都是把光标调到最后位置
f=open('将进酒3','r+',encoding='utf-8')
print(f.tell())
print(f.readline())
f.write('hanfei')
print(f.tell())
print('1',f.readline())
time.sleep(10)
f.close()

7、修改文件文本
f_read=open('将进酒','r',encoding='utf8')
f_write=open('将进酒+','w',encoding='utf8')
for line in f_read:
number+=1
if number==8:
line=''.join([line.strip(),'hello deng\n'])
f_write.write(line)
f_write.close()
f_read.close()

posted on 2019-12-19 17:27  Fei_Han  阅读(77)  评论(0)    收藏  举报