zoukankan      html  css  js  c++  java
  • 第一模块 day5 下

    2.29    操作文件
    
    1.    找到文件  打开
    2.    读, 修改
    3.    保存 关闭
    
    
    1.    f.open(filename)
    2.    f.read(50)  只读50个.. 
        f.read() 不写数字就读所有,
        f.write(YOURDATA)
    
    
    3.    f.close()
    
    ----------------
    
    
    文件打开模式    只能以一种方式
    python比较变态,只能以读、创建、追加 3种模式中的任意一种打开文件,不能即写又读。
    
    
    操作模式
    
    
        r 只读模式
    
        w 创建模式,若文件已存在,则覆盖旧文件
    
        a 追加模式,新数据会写到文件末尾
    
    
    
    创建文件
    
    f = open(file='D:/工作日常/staff.txt',mode='w')
    f.write("Alex  CEO  600
    ")
    f.write("黑姑娘  行政  5000
    ")
    f.close()
    
    
    只读模式
    
    f = open(file='兼职白领学生空姐模特护士联系方式.txt',mode='r')
    print(f.readline())  # 读一行
    print('------分隔符-------')
    data = f.read()  # 读所有,剩下的所有
    print(data)
    f.close()
    
    
    
    追加模式
    
    f = open(file='兼职白领学生空姐模特护士联系方式.txt',mode='a')
    f.write("黑姑娘 北京  168  48
    ")  # 会追加到文件尾部
    f.close()
    
    
    循环文件
    
    f = open(file='兼职白领学生空姐模特护士联系方式.txt',mode='r')
    for line in f:
        line = line.split()    split不添加参数默认是空格分隔, 分隔后每行是一个列表
        name,addr,height,weight,phone = line
        height = int(height)
        weight = int(weight)
        if height > 170 and weight <= 50:
            print(line)
    f.close()
    
    
    
    f.seek()    走多少个字节..  ,如果是英文,每次1个, 如果是中文 每个汉字3个字节
    
    f.flush()    强制刷到硬盘            为什么要强制刷新到硬盘,是因为 文件写入不是马上到硬盘的,都是临时存在
                内存, 如果断电,就gg... 所以有了flush,而且还不需要f.close. 就可以直接到硬盘了.正常是f.close之后
                才到硬盘
    
    
    f.tell()    返回光标的位置
    
    f.truncate(100) 从0截断到100        如果里面不写数字,就从光标的位置到末尾 全部去掉        
    
    举例
    f = open('空姐联系方式.txt','a',encoding='utf-8')
    f.seek(9)
    print(f.tell())
    
    f.truncate()
    
    
    
    f.truncate() 如果不写数字,就从光标的位置9到末尾 全部没了
    
    如果写了数字,这个时候又有seek,那么, seek失效,直接从0开始,从头开始截断到数字位置
    
    
    -----------------------------
    读
    
    
    
    f.read   一次性读完, 读完是个str
    
    f.readline  一次读一行  读完是个str
    
    f.readlines        一次性读完所有行,,返回的是列表
    
    
    -----------------------
    
    
    
    2.33    混合模式下处理文件
    
    
    w+ 写读 , 这个功能基本没什么意义,它会创建一个新文件 ,写一段内容,可以再把写的内容读出来,没什么卵用。
    
    r+ 读写,能读能写,但都是写在文件最后,跟追加一样,,   不会覆盖源文件, 往后添加
    
    a+ 追加读,文件 一打开时光标会在文件尾部,写的数据全会是追加的形式
    
    以上3种 都不常用
    --------------
    
    
    修改文件      r+
    
    f = open('空姐联系方式.txt','r+',encoding='utf-8')
    f.seek(6)
    f.write("你好")
    
    
    我想你好456789    123456你好你好你好
    我想请123456789    123456你好你好你好
    
    以上2行内容本来意义,执行代码后偏移6个字节,后,请123,变成了你好.   你好占了6个字节,所以 请123被吃掉了
    
    ---------------
  • 相关阅读:
    经典小故事
    清晨六问
    ui相关书籍
    ui设计书籍推荐
    生成器
    函数之装饰器
    函数之闭包
    函数之作用域的查找顺序
    函数之命名空间/名字空间/名称空间
    内置函数
  • 原文地址:https://www.cnblogs.com/666sss/p/11582650.html
Copyright © 2011-2022 走看看