python:文件操做

对文件操做流程python

  1. 打开文件,获得文件句柄并赋值给一个变量
  2. 经过句柄对文件进行操做
  3. 关闭文件 

打开文件的模式有:linux

  • r,只读模式(默认)。
  • w,只写模式。【不可读;不存在则建立;存在则删除内容;】
  • a,追加模式。【可读;   不存在则建立;存在则只追加内容;】

"+" 表示能够同时读写某个文件windows

  • r+,可读写文件。【可读;可写;可追加】
  • w+,写读
  • a+,同a

"U"表示在读取时,能够将 \r \n \r\n自动转换成 \n (与 r 或 r+ 模式同使用)this

  • rU
  • r+U

"b"表示处理二进制文件(如:FTP发送上传ISO镜像文件,linux可忽略,windows处理二进制文件时需标注)编码

  • rb
  • wb
  • ab
#author wangzhaoyang
#f= open('test','r',encoding=('utf-8'))  #  r,w,a,r+.w+,a+
#f.read() #一次性读取全部
f= open('test1','a',encoding=('utf-8'))  #  r,w,a,r+.w+,a+
f.write(" \nthis is test") #
f.close()

 循环字典spa

set_test = {"stu001":"wangzhaoyang","stu002":"ligang"}
for key in set_test:
    print(key,set_test[key])
for  k,v in set_test.items():
    print(k,v)

经常使用操做指针

f= open('test1','a',encoding=('utf-8'))  #  r,w,a,r+.w+,a+(追加读)
f.write(" \nthis is test") #f.read()   读所有
f.close()  #关闭文件
f.readlines()#  列表,一次性所有读到内存中
f.readline()  #  一行一行的读,可是会把文件先读到到内存中

for line in f:  ###一行一行的读,效率最高,最经常使用的
    print(line)
print(f.tell())  ##打印指针位置
f.seek(0)   ##将文件指针移动到指定位置
print(f.encoding)  ##打印文件编码
print(f.name)  #打印文件,名字

f.flush()  #将文件刷新到硬盘上,强制刷到硬盘上
f.truncate(10)  #截断,截取十个字符

进度条code

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

文件替换,打开两个文件blog

f = open("test","r",encoding=("utf-8"))
f_new=open("test1","w",encoding=("utf-8"))
for line in f:
    if "毁灭性的的那种"  in line:
        line=line.replace("毁灭性的的那种","wangzhaoyang123")
    f_new.write(line)
f.close()
f_new.close()

 

with语句内存

为了不打开文件后忘记关闭,能够经过管理上下文,即:

1
2
3
with  open ( 'log' , 'r' ) as f:
     
     ...

如此方式,当with代码块执行完毕时,内部会自动关闭并释放文件资源。

在Python 2.7 后,with又支持同时对多个文件的上下文进行管理,即:

1
2
with  open ( 'log1' ) as obj1,  open ( 'log2' ) as obj2:
     pass
相关文章
相关标签/搜索