• 【python基础】文件读取


    一、编码

      1、ASCII ——> 美国人创造的编码方式, 包括128个字符, 编码分别为0-127, 英文常用标点符号,数字,字母

      2、各个国家有了自己的编码
        问题: 在中国编码的文件 ——> U盘——> 日本(有自己的编码方式) ——> 乱码
      3、unnicode 万国码,统一收纳了基本上全世界所有国家的字符 ——> 并没有实现
      4、utf-8 字符编码对应,对ASCII编码进行向后兼容

     1 # 打开文件
     2 f = open("./message.txt")
     3 
     4 # 读取数据
     5 print(f.read())
     6 
     7 # 关闭文件
     8 f.close()
     9 
    10 # readlines
    11 res = f.readlines()
    12 for x in res:
    13 print(x)
    14 
    15  
    16 # 在文件操作时, 使用with语句, 可以自动关闭掉使用完毕的文件, 不需要手动调用close方法
    17 
    18 # 语法
    19     with open(路径, 模式, 编码) as 对象名:
    20         文件的操作
    21 
    22 with open("dragon.txt") as f:
    23 s = f.read()
    24 print(s)        

    二、写入数据

      打开文件的模式:默认是只读

      模式名  可做的操作  文件不存在
       r           可读          报错
        r+    可读可覆盖写       报错

        w         覆盖写              创建
       w+      可读可写            创建
        a         追加写              创建
        a+      可读可写            创建

      读取/写出二进制数据:

        rb、rb+

        wb、wb+、ab、ab+

        * w+ 可读可写, 读不出来东西;
        * a+ 可读可写, 读不出来东西;
      小结:
        1、文件不存在: r, r+ --> 报错; 其他的都会创建;
        2、 带 + 号的, 可读可写; a+, w+, r+
          a ——append,追加写
          w ——write,覆盖写
          r ——read,可读

     1 # 二进制
     2 # 1、读取已存在图片的二进制数据, rb
     3 # 2、创建一个新图片文件, 并写入二进制数据, wb
     4 # 3、关闭以上两个文件, 完成赋值
     5 
     6 f1 = open("ry6.jpeg", 'rb')
     7 # 复制出的新文件
     8 f2 = open("ry7.jpeg", 'wb')
     9 
    10 d = f1.read() # 从原文件中读取所有数据
    11 f2.write(d) # 写入到新文件中
    12 
    13 f1.close()
    14 f2.close()

    三、实例

     1 import time
     2 # 1、通过程序创建一个alpha.txt的文件, 将26个英文字母写在里边、
     3 
     4 def write_alpha():
     5     f = open("alpha.txt", "w")
     6     s = ""
     7     for x in range(65, 91):  # 65-90/ 97-122
     8         s += chr(x)
     9     f.write(s)
    10     f.close()
    11 
    12 write_alpha()
    13 
    14 
    15 # 2、写一首诗, 每句换行
    16 def poem():
    17     s = "
    夜空
    是海里翻起的一朵浪
    想念
    是海"
    18     f = open("alpha.txt", "w")
    19     f.write(s)
    20     f.close()
    21 
    22 poem()
    23 
    24 
    25 # 3、模拟聊天记录, 循环通过键盘输入, 俩人, 将俩人的对话保存在chat.txt中
    26 # xixi说: 用户输入说话的内容....
    27 # haha说: ....
    28 # xixi说: .....
    29 # haha说: ....
    30 # xixi说: 用户没有输入 直接回车
    31 # haha说: 用户没有输入 直接回车
    32 # 聊天结束, 将以上存在chat.txt中; 并记录聊天的日期和时间: 2019-08-21 14:12:38
    33 
    34 
    35 def chat():
    36     f = open("chat.txt", "a")
    37     # 获取当前时间 --> 时间元组 2019-08-21 14:47:03
    38     t = time.localtime()
    39     time_str = time.strftime("%Y-%m-%d %H:%S:%M", t)
    40     f.write(time_str)  # 记录本次聊天的起始时间
    41     f.write('
    ')  # 来个空格
    42     while True :
    43         p1 = input("xixi说:")  # ""
    44         p2 = input("haha说:")  # ""
    45 
    46         if not p1 and not p2:  # 如果xixi也没有说,haha也没有说, 则聊天结束
    47             f.close()
    48             print("___聊天结束___")
    49             break
    50         else:
    51             p1_str = "xixi说: " + p1 + "
    "
    52             p2_str = "haha说: " + p2 + "
    "
    53             f.writelines([p1_str, p2_str])  # 记录xixihaha的聊天内容
    54 
    55 
    56 chat()
  • 相关阅读:
    DM数据库disql的使用 Disql disql 达梦数据库Disql
    移动端禁止蒙层下的页面滚动
    移动端如何自动适配px
    使用Vant做移动端对图片预览ImagePreview和List的理解
    uniapp中使用uView组件库
    h5使用vuephotopreview 做全屏预览
    jsonview的实现
    PC端自适应使用rem 移动端适配升级版
    axios解决跨域问题(vuecli3.0)
    vs code 配置git path
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12114951.html
Copyright © 2020-2023  润新知