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

    文件操作

    foreword

    流程:1 创建文件对象 2 调用文件方法进行操作  3 关闭文件

    1.“读”模式

    1 f = open("C:UsersShincePycharmProjectsDeanerysweek2day5	est","r")  

     在文件的操作中都存在光标的移动,之后的操作都会收到影响。 括号内加encoding = “utf8” 正确显示

    1 data = f.read(5) # 读操作 5个字符
    2 f.readline()      # 读第一行的内容 不加.strip打印出来会换行
    3 f.readline()      # 读第二行的内容 光标已经移动到第一行最后
    4 f.readlines()     # 读取所有 并制成list 会打印出
    
    5 for i in f:
    6     print(i.strip())        # *会按照格式打印所有 将F变成一个迭代器(按照行打印) 常用打开 模式
    7 f.close()              # 打开后记住关闭掉
    8 print(f.tell())        # 告诉你光标在哪个位置 utf8一个中文占3个位置(编码不同不一致) 英语占一个
    9 f.seek(0)             # * 调整光标的位置

    2.“写”模式

    1  f = open("C:UsersShincePycharmProjectsDeanerysweek2day5	est","w") # 写模式 在打开写模式的同时 会格式化文件 若是没有这个文件则创建这个文件
    2 f.write("sqwe")      # 写入 空格 换行符都是“字符”
    3 f.write("sad")       # 再次写入跟在第一个后面无空格
    4 f.flush()            # 将写好的存入磁盘
    5 f.close()

    3.“添加”模式

    1 f = open("test","a")     # 添加模式 类似append,添加到最后。 
    2 f.write("
    你好")         # 
     表示会另起一行
    3 f.truncate(5)         #  删除5个字节之后的内容(不受光标的影响), 不在r模式下使用(会报错)  默认为-1,即开头后面都删除。
    4 f.close()

    truncate的计算办法是字节不是字符。utf8中3个字节表示一个字符,英语字母是一个。

    4.“读+”模式

    读+模式是在读的基础上添加写的功能,是一种经常能使用的到的模式。需要注意的是,读的光标和写的光标不在同一个位置,各自位于一前一后不受影响。

    5.“写+”模式

    1 f = open("C:UsersShincePycharmProjectsDeanerysweek2day5	est","w+")   # 首先是以写的模式打开所以内容为空
    2 f.write("嘎嘎")           # 光标到6
    3 f.read()                  # 读到的为空 因为读是指光标后的内容

    6.“添加+”模式

    1 f = open("test","a+",encoding="utf8")  # 光标只有一个可读可写在最后
    2 print(f.read(4))                       # 读到的内容为空
    3 f.write("here")                      # 内容写到了最后

    7.其他

    1 with open("test","r",encoding="utf8") as f,open("testc","r",encoding="utf8") as l:
    2     print(f.read())
    3     print(l.read())

    同时打开两个文件并命名,这样做的好处是省去了.close这个操作。但是应注意缩进。

  • 相关阅读:
    正则表达式的妙用获得数组
    道不远人,话IO框架
    页面和控件的生命周期及其二者的关系
    深度解析 TypeConverter & TypeConverterAttribute (二)
    今天我顺利的在cnblogs安家,我要在这里写下辉煌
    AJAX or Ajax
    深度解析 TypeConverter & TypeConverterAttribute (一)
    SonarQube简单入门
    vuecli · Failed to download repo vuejstemplates/webpack: connect ETIMEDOUT 192.30.253.112:443
    Sqlmap使用教程
  • 原文地址:https://www.cnblogs.com/khal-Cgg/p/5811377.html
Copyright © 2011-2022 走看看