zoukankan      html  css  js  c++  java
  • python3 字符编码与转码的理解

    额。。。上通识课讲到了NLP12条,感觉讲的挺好的,照着抄一条先。。。

    1,没有两个人是一样的

      没有两个人的人生经验会完全一样,所以没有两个人的信念,价值和规条系统会是一样。

      因此没有两个人对同一件事的看法能够绝对一致。

      因此没有两个人对同一件事的反应会是一样的。

      因此没有两个人的态度和行为模式会完全一样。

      因此发生在一个人身上的事,不能假定发生在另一个人身上也会有一样的结果。

      人与人之间的不同,建造了这个世界的奇妙可贵。

      尊重别人的不同之处,别人才会尊重自己独特的地方。

      每一个人的信念,价值观和规条系统都是在不断演变中,所以没有一个人在两分钟是一样的。

      两个人的信念,价值观和规条不一样,不一定会使两个人不能沟通或发展出良好关系。

      给别人空间也就是尊重别人的信念,价值观和规条,才能有良好的沟通和关系。

      同样地,自己与别人的看法不同,也是正常的事。

      当尊重别人的信念,价值观和规条的同时,我们也有权力要求别人尊重自己的信念,价值观和规条。

    相当有道理哈。。。   


    补个文件操作方法: 对于总是忘记关文件这一问题 最好用:

    with open("file_name", "r", encoding= "utf-8") as f1, \

       open("file_name2", "r", encoding= "utf-8") as f2:

      一系列操作。。。。 

    这操作我喜欢!

    然后还补个修改文件内容的方法:

    本质上来说是不可能修改文件内容的,讲道理可以把文件从硬盘里拉到内存,比如用vim然后在内存里修改内容,这可以,但你搞个大文件内存就爆了,不好。

    真正说来,修改文件其实是在写一份。。。一行一行的读源文件,不改的就写道新文件里,到了要改的内容就把它给改了再写道新文件里。。。。。就是这么操作的!如下所示:

     1 #!usr/bin/env/ python
     2 # -*- coding:gbk -*-
     3 # Author: XiaoFeng
    import sys
    4 find_str = sys.argv[1]
    replace_str = sys.argv[2] # 原来sys.argv是这么用的。。。 在窗口界面操作给他赋值
    5 with open("file_old", "r", encoding= "utf-8") as f1, \ 6 open("file_new", "w", encoding= "utf-8") as f2: 7 for line in f1: # 这里f1就相当于迭代器了 是啥我也不知道,但是输出一行是证实了的 8 if "fin_str" in line: # 找到有"est"的那一行 9 line = "replace_str" #把这行直接从写 10 f2.write(line)

    今天只学了编码解码。。。课多啊从早到晚  妈耶 

    首先得知道万国码unicode 最牛逼的 兼容万国啊   中文,英文都是两字节

    其次是utf-8  中文的  英文一字节,因为包括的就是ASCLL码  但中文三字节 中国人有钱,人性  所以utf-8是长度可变的编码    

    还有个gbk编码 windows上用的把。。。

    不同的文件用不同编码在不同的地方当然就打不开啦

    所以 通用法就是 先解码成 中介:unicode  然后再编码成能是别的就行了 

    学个操作: sys.getdefaultencoding()  获取系统默认编码 我的python3里设置的是utf-8

    奇葩的是 在程序里的 数据类型 却是unicode   搞不懂。。。。。。

    一下是联系的草稿。。。。。。。。。。。。。。。没搞太懂哦

     1 #!usr/bin/env/ python
     2 # -*- coding:gbk -*-
     3 # Author: XiaoFeng
     4 import sys
     5 
     6 
     7 #   上面的声明作用是告诉python3这是个gbk编码的文件 然后python就知道它是啥文件了,然后就把它解码成unicode
     8 print(sys.getdefaultencoding())  # 结果显示我这个 python3程序的默认编码是utf-8
     9 s = "哈哈哈"  # 这里又不一样了,管你啥文件编码,python3程序里 数据类型 就是是unicode编码
    10 print(s)  # 所以这里可以直接输出中文
    11 
    12 print("-" * 50)
    13 s_utf8 = s.encode("utf-8")   # 注意Py3里 只会转成字节型
    14 print(s_utf8)
    15 print(s_utf8.decode())  # decode()   想要输出汉字还得decode一下才行(奇葩)
    16 
    17 print("-" * 50)
    18 s_gbk = s.encode("gbk")  # 把数据类型从unicode变成gbk
    19 print(s_gbk)
    20 # 现在是gbk编码 想输出中文,那得变成py3的 utf-8
    21 # 所以先把gbk解码为unicode 然后再编码为utf-8
    22 # decode()括号里要告诉unicode我是啥 decode()括号里要告诉unicode我想变成啥
    23 # 注意Py3里 encode()只会转成字节型 想要输出中文还得decode()一下才行
    24 print(s_gbk.decode("gbk").encode().decode())
  • 相关阅读:
    flutter 强制竖屏和横屏
    Error: ADB exited with exit code 1
    UVA-11426
    个人信息表格题
    Kubernetes 机器内核问题排查
    ETCD
    ubuntu16.04在使用vim的时候,中文乱码
    Kubernetes Ingress-Nginx 实现蓝绿、灰度发布
    MySQL高可用架构MHA+ProxySQL实现读写分离和负载均衡
    ElasticSearch
  • 原文地址:https://www.cnblogs.com/xf1262048067/p/10568903.html
Copyright © 2011-2022 走看看