zoukankan      html  css  js  c++  java
  • python:文件操作

    对文件操作流程

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

    打开文件的模式有:

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

    "+" 表示可以同时读写某个文件

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

    "U"表示在读取时,可以将 自动转换成 (与 r 或 r+ 模式同使用)

    • 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(" 
    this is test") #
    f.close()

     循环字典

    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(" 
    this 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)  #截断,截取十个字符

    进度条

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

    文件替换,打开两个文件

    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
  • 相关阅读:
    Html.ActionLink 几种重载方式说明及例子
    2 python 文本特征提取 CountVectorizer, TfidfVectorizer
    模型调参---GridSearchCV
    1 NLP学习大纲
    pandas.dropna/isnull/fillna/astype的用法
    激活函数总结
    LeetCode--53 最大连续子序列(总结)
    LeetCode--44 通配符匹配
    LeetCode--Two_Sum
    css 背景图片自适应元素大小
  • 原文地址:https://www.cnblogs.com/wzy23/p/11426639.html
Copyright © 2011-2022 走看看