9、文件操作

open("filename",encoding)

 

data=open("filename",encoding='utf-8').read()

 

w    创建一个新文件。

 r     读取  ,不可写

 a ,追加 ,不能读

r+ 读取n行后,写仍然从文件末尾开始写

w+写读,创建一个新文件,写就只能追加到最后。

a+

rb 二进制文件读写(网络传输、二进制文件)

(不要编码方式)

wb

ru \r\n \n  统一成\n

wu

fp = open('filename','w',encoding='utf-8')#文件句柄 w创建一个新文件。
fp = open('filename','rb')

  关闭文件

f.close()

读取行

fp.readline()

 将文件的每行放一起组成一个列表

fp.readlines()#读小文件

 练习:

读取在第十行显示分割线

fp=open('/Users/mac/PycharmProjects/myPython/day2/goods.txt','r+',encoding='utf-8')

for index,line in enumerate(fp.readlines()):
    if index == 9 :
        print('---------我是分割线-----')
    else :
        print(line.strip())

高效,迭代器fp

fp=open('/Users/mac/PycharmProjects/myPython/day2/goods.txt','r+',encoding='utf-8')
count =0
for line in fp :
    if count == 9:
        print('---------我是分割线-----')
    else:
        print(line.strip())
    count += 1

 光标移动

fp=open('/Users/mac/PycharmProjects/myPython/day2/goods.txt','r+',encoding='utf-8')
fp.read(5) fp.tell()#按字符计数

fp.seek(0)#光标回0.
fp.seekable()#终端设备不能移动光标。
fp.readable()
fp.writeable()

 文件编码方式

fp.encoding()

 

fp.fileno()#系统中的文件句柄。

 flush方法

fp.flush()#默认缓存满后再写入硬盘。flush可以即时写入硬盘

     进度条

import sys,time
for i in range(50):
    sys.stdout.write("#")
    sys.stdout.flush()
    time.sleep(0.1)

 截断

fp.truncate()#清空

 

fp=open('/Users/mac/PycharmProjects/myPython/day2/goods.txt','a',encoding='utf-8')
fp.truncate(10)#从文件开始到第10个字符

 修改一个文件

1、加载到内存修改完覆盖原文件

 如:vim

2、改完后,写入一个新文件,

f = open('goods.txt','r',encoding='utf-8')
f_new = open('goods_new.txt','w',encoding='utf-8')
for line in f:
    if "这个自行车是我的" in line :
        line = line.replace('是我','是Xiaochun')
    f_new.write(line)
f.close()
f_new.close()

 程序练习:实现简单的shell sed的功能

import sys
f = open('goods.txt','r',encoding='utf-8')
f_new = open('goods_new.txt','w',encoding='utf-8')
find_str = sys.argv[1]
replace_str = sys.argv[2]
for line in f:
    if find_str in line :
        line = line.replace(find_str,replace_str)
    f_new.write(line)
f.close()
f_new.close()

 with 作用自动关闭文件

with open('goods.txt','r',encoding='utf-8') as  f,open('goods_new.txt','r',encoding='utf-8') as f_new:
    f.readline()

 

with open('goods.txt','r',encoding='utf-8') as f,\
open('goods_new.txt','r',encoding='utf-8') as f_new:
    f.readline()

 

 

 

 

 

 

 
posted on 2018-07-20 20:09  LittleSpring  阅读(276)  评论(0编辑  收藏  举报