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

    1.文件,什么是文件?
    文件是操作系统提供给用户/应用程序操作硬盘的一种虚拟接口

    计算机三层体系结构:用户/应用程序 open()
    操作系统(文件)
    计算机硬件(硬盘)
    2.为什么要用文件?
    用户/应用程序可以通过文件将数据永久的保存在硬盘中,即操作文件就是操作硬盘
    用户/应用程序直接操作的是文件,对文件进行的操作都是在向操作系统发送系统调用,
    然后在由操作系统转换成具体的硬盘操作
    3.如何使用文件?open()
    控制文件读写内容的模式 t/b
    t/b不能单独使用 要和r/w/a联合使用

    t文本(默认的模式)
    1.读写都是以str(unicode)为单位
    2.文本文件
    3.必须制定encoding="utf-8"

    b二进制/bytes

    控制文件读写操作的模式
    1.r 只读模式
    2.w 只写模式
    3.a 只追加写模式
    4.+:r+/w+/a+
    # 1.打开文件
    # window路径分隔符问题
    # open('C:a.txt bcd.txt')
    # 解决方案一:推荐
    # open(r'C:a.txt bcd.txt') #正常路径前面加r
    # 解决方案二:
    # open('C:/a.txt/nb/c/d.txt') #反斜杠方式

    f=open(r"hahaa.txt",mode="rt")#f的值是一种变量,占用的是应用程序的内存空间
    print(f)

    # 2.操作文件:读/写文件,应用程序对文件的读写请求都是在向操作系统发送系统调用
    #然后由操作系统控制硬盘把输入读入内存或写入硬盘
    f=open(r"hahaa.txt",mode="rt")
    res=f.read()
    print(res,end=" ")
    print(type(res))
    # 3.关闭文件
    # f.close()#回收操作系统资源
    # f.read()#变量f 存在,但是不能在读了
    # del f #回收应用程序资源

    # 以t 模式为基础进行内存操作
    # 1.r(默认的操作模式) :只读模式,当文件不存在时报错,文件存在时指针跳转到开始位置
    # with open("haha/a.txt",mode="rt",encoding="utf-8")as f:
    # print("第一次读".center(50,"*"))
    # res=f.read()
    # print(res)
    # with open(r"hahaa.txt",mode="rt",encoding="utf-8")as f:
    # print("第二次读".center(50,"*"))
    # res=f.read()
    # print(res)


    # print("案例分析".center(20,"="))
    # user_name=input("请输入你的账号:")
    # user_password=input("请输入你的密码:")
    # with open(r"hahauser.txt",mode="rt",encoding="utf-8")as f:
    # # res=f.read()
    # # print(res)
    # for line in f:
    # # print(line)
    # name,password=line.strip().split(":")
    # if user_name==name and user_password==password:
    # print("登录成功")
    # break
    # else:
    # print("登录失败")
    # print("="*20)

    # user_name=input("请输入你的账号:")
    # user_password=input("请输入你的密码:")
    # with open("haha/d.txt",mode="at",encoding="utf-8")as f:
    # f.write("{}:{} ".format(user_name,user_password))
    # print("恭喜你注册成功!")
    # with open(r"hahad.txt",mode="rt",encoding="utf-8")as l:
    # res=l.read()
    # print(res)

    # print("案例分析:用户注册".center(30,"="))
    # name=input("输入你的账号:")
    # password=input("输入你的密码:")
    # with open("haha/d.txt",mode="at",encoding="utf-8")as f:
    # f.write("{}:{} ".format(name,password))
    # print("恭喜你注册成功!")
    # print("="*30)
    # with open(r"hahad.txt",mode="rt",encoding="utf-8")as l:
    # res=l.read()
    # print(res)
    # print("*"*30)
    # user_name=input("账号:")
    # user_password=input("密码:")
    # with open("haha/d.txt",mode="rt",encoding="utf-8")as k:
    # for line in k:
    # name,password=line.strip().split(":")
    # if user_password==password and user_name==name:
    # print("login success!")
    # break
    # else:
    # print("login default!")


    # 应用程序------》文件
    # 应用程序------》数据库管理软件-------》文件
    # 2.w :只写模式,当文件不存在时创建空文件,当文件存在时会清空文件,指针位于开始位置
    # with open(r"hahae.txt",mode="wt",encoding="utf-8")as a:
    # # res=a.read()#不能进行读操作 会报错
    # a.write("你好啊 小傻瓜")
    #强调1 在以w 模式打开文件没有关闭的条件下,连续写入新的内容总会跟在旧的内容后面
    # with open("haha/e.txt",mode="wt",encoding="utf-8")as a:
    # a.write("哈哈 ")
    # a.write("哈哈哈 ")
    # a.write("哈哈哈哈 ")
    #强调2 重新以w 模式打开文件 则会清空内容
    with open(r"hahae.txt",mode="wt",encoding="utf-8")as a:
    a.write("你好啊 小傻瓜")
    with open("haha/e.txt",mode="wt",encoding="utf-8")as a:
    a.write("哈哈哈哈 ")


    #w 模式用来创造新的文件
    #文件的copy工具
    # src_file=input("输入源文件路径》:").strip()
    # new_file=input("输入源文件路径》:").strip()
    # with open(r"{}".format(src_file),mode="rt",encoding="utf-8")as f1,
    # open(r"{}".format(new_file),mode="wt",encoding="utf-8")as f2:
    # res=f1.read()
    # f2.write(res)

    #3.a 只追加写 如果文件不存在 ,创建空文件;如果文件存在 ,文件指针会掉到末尾
    # with open("haha/e.txt",mode="at",encoding="utf-8")as f:
    # # f.read()#报错 不能进行读操作
    # f.write("小朋友你是不是有很多问好?")

    #强调 w模式与a模式异同
    #相同点:在打开文件不关闭的情况下,连续的写入,新的内容总是跟在原有内容的后面
    #不同点:以a模式打开文件不会清空原文件内容,会将文件指针移动到末尾,在文件内容末尾添加内容
    # 使用a 可以实现注册功能
    # name=input("账号》:")
    # psw=input("密码》:")
    # with open("haha/f.txt",mode="at",encoding="utf-8")as q:
    # q.write("{}:{} ".format(name,psw))
    # with open("haha/f.txt",mode="rt",encoding="utf-8")as q:
    # res=q.read()
    # print(res)



    # +不能单独使用 必须结合r w a 一同使用
    # with open("haha/a.txt",mode="rt+",encoding="utf-8")as f:
    # # f.write("小朋友你是不是很可爱 ")
    # res=f.read()
    # print(res)
    with open("haha/a.txt",mode="w+t",encoding="utf-8")as a:
    a.write("你好")
    res=a.read()
    print(res)
  • 相关阅读:
    GTK+ 3.6.2 发布,小的 bug 修复版本
    RunJS 新增 Echo Ajax 测试功能
    Mozilla 发布 Popcorn Maker,在线创作视频
    Sina微博OAuth2框架解密
    Mina状态机State Machine
    Mozilla 发布 Shumway —— 纯JS的SWF解析器
    Code Browser 4.5 发布,代码浏览器
    ROSA 2012 "Enterprise Linux Server" 发布
    ltrace 0.7.0 发布,程序调试工具
    Artifactory 2.6.5 发布,Maven 扩展工具
  • 原文地址:https://www.cnblogs.com/mayrain/p/12499267.html
Copyright © 2011-2022 走看看