zoukankan      html  css  js  c++  java
  • 15.文件操作相关知识

    # py做文件操作
    # 文件操作三种模式
    # r read
    # w write 创建
    # a append

    # 创建模式
    f=open("test1.txt",mode="w")
    f.write("曹娜是我的脑残粉 ")
    f.write("思汗是我的脑残粉 ")
    f.close()

    # 只读模式,不能读现在
    f=open("test.txt",mode="r")
    data=f.read()
    # data=f.read(3)
    print(data)
    f.close()


    # 追加模式,不能读现在
    f=open("test1.txt",mode="a")
    f.write("思泽是我的脑残粉 ")# 在最后一行追加
    f.close()

    # 文件循环
    # 在读的模式下,循环每行,spilt去空格
    f=open("test1.txt",mode="r") #
    # def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True): # known special case of open open函数参数
    print(f.readlines())
    for line in f:
    line=line.split()#去空格
    height=int(line[1])
    if height>160:
    print(line[0])

    #文件操作
    f=open("test.txt","r")
    # print(f.read())#读全部,原文件显示
    # print(f.readline())#读一行 参数可填读几行
    # print(f.readlines())#读全部,返回是一个列表
    f.seek(2)#光标移动位置往后操作,
    # seek移动的是多少个字节,而不是字符,英文无所谓,一个字节是一个字符,但是中文是3个字节一个字符。所以如果参数是2,并且是中文,会报错
    print(f.readline())

    f.flush() # 把缓存数据强制刷到硬盘上,
    f.readable()# 是否可读
    f.seekable()
    f.tell() #返回光标当前位置
    f.truncate(100) #指定长度,从0阶段到100指定长度,也是截断字节
    f.truncate()#如果不写参数,就从当前光标截断到最后


    # 混合模式
    # w+ 写读
    f=open("write_and_read","w+")
    f.write("caona1 ")
    f.write("caona2 ")
    f.write("caona3 ")
    f.seek(0)
    print(f.readline())


    # r+ 读写
    f=open("write_and_read","r+")
    f.write("caona4 ")#尾部追加
    f.write("caona5 ")
    f.write("caona6 ")
    print(f.readline()) #写的光标在最后,读的光标在最前面


    # a+ 追加读,文件一打开光标在尾部,写的数据以追加形式

    f=open("write_and_read","a+")
    f.write("haha ")
    f.write("haha ")
    print(f.readline())
    f.seek(0)
    print(f.readline())


    #修改文件
    f=open("test.txt","r+")
    f.seek(5)
    f.write("曹娜")# 新写的数据会覆盖原来的数据,而不是数据后移。不是我们想要的结果,因为,文件在硬盘存储,已经占据一定内存空间,如果去增加数据,只会把原始文件覆盖掉,是硬盘的存储原理导致的。
    # 所以有一种修改文件的方式,就是不占内存,占硬盘的修改方式,先从硬盘读取文件到内存,然后再创建一个新文件,一边读取原文件,把原文件和要修改的数据写入新文件中。形成一个新的文件。

    # 不占内存占硬盘方式修改文件 ,需求是把南通改成北京
    import os
    old_file="test1.txt"
    new_file="test_new.txt"
    f=open(old_file,"r")
    f_new=open(new_file,"w")
    old_str="南通"
    new_str="北京"
    for line in f:
    if "南通" in line:
    line=line.replace(old_str,new_str)
    f_new.write(line)
    f.close()
    f_new.close()
    os.rename(new_file,old_file) # 重命名
    (需要练习作业)
  • 相关阅读:
    【Linux】解压分卷压缩的zip文件
    kafka数据清理
    在 Kubernetes 上安装 Gitlab CI Runner Gitlab CI 基本概念以及 Runner 的安装
    APM监控--(三)zipkin部署手册
    K8S使用NodePort类型Service
    kubernetes基本概念 pod, service
    rsyslog配置解析
    日志收集之rsyslog to kafka
    linux auditd审计的简单使用和理解
    Nginx的try_files指令使用实例
  • 原文地址:https://www.cnblogs.com/xh716/p/11563639.html
Copyright © 2011-2022 走看看