zoukankan      html  css  js  c++  java
  • 【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()
  • 相关阅读:
    泡泡H5这封企业剪彩活动邀请函好像挺专业!
    教你 Shiro + SpringBoot 整合 JWT
    Thymeleaf 获取后端Model中的数据
    SpringBoot 之 普通类获取Spring容器中的bean ,
    如何用JS判断网页中某个id的网页元素是否存在(两种写法 jQuery写法和原始写法:
    前台请求不带cookie的问题解决方案大汇总
    js访问函数内部的变量(三种方法)
    源码分析:若依用户 user_id查询返回除了用户表,为何还带有部门dept和角色role表呢
    关于若依前端分页首次使用BootstrapPager 即bootstrap扩展插件
    关于若依需要验证码,PostMan是如何登陆流程
  • 原文地址:https://www.cnblogs.com/Tree0108/p/12114951.html
Copyright © 2011-2022 走看看