zoukankan      html  css  js  c++  java
  • 字符编码与文件处理


    字符编码

    一:什么是字符编码
    人类的字符----》翻译-------》数字
    翻译的过程必须遵循一个标准:字符与数字一一对应的关系
    这个标准称之为字符编码表

    1.ASCII
    8bit=1bytes,一个英文字符占用1字节

    2.GBK
    16bit=2bytes ,2个字节表示一个中文字符,1字节表示一个英文字符

    3.unicode(内存中固定的编码):
    16bit=2bytes,2个字节表示一个字符

    utf-8:Unicode Transformation Format
    1字节表示一个英文字符,3bytes表示一个中文字符

    重要:保证不乱吗的核心就是:
    文件是以什么编码存的,就必须以该编码读取
    强调:我们能控制的只是存到硬盘上的编码

    了解:
    python3解释器:默认utf-8编码
    python2解释器:默认ascii编码

    文件头的作用:#coding:utf-8 是告诉python解释器,使用指定的字符编码

    二:编码转换:
    unicode---编码encode--->gbk
    gbk------->解码decode---》unicode

    文件处理-1

    一、打开文件
    f=open(r'文件的路径',mode='打开文件的模式',encoding='操作文件的字符编码')
    f=open(r'a.txt',mode='r')

    二、读/写
    data=f.read()
    print(data)

    三、关闭文件
    f.close() #回收操作系统的资源。在每次打开文件后一定要关闭,否则打开的文件会占用操作系统资源。

    四、开关文件的另一种方法,可以不用手工关闭文件。
    with open(r'a.txt',mode='r') as f:
    print('===>')
    print(f.read())

    with open(r'a1.txt',mode='r') as f1,open('a2.txt',mode='r') as f2:
    print('===>')
    print(f1.read())
    print(f2.read())
    五、打开文件的字符编码:
    默认的打开文件的编码是:当前操作系统默认的编码,win:gbk,linux:utf-8,mac:utf-8
    f=open('a.txt',mode='r',encoding='utf-8') # encoding='utf-8'就是指定打开文件的字符编码
    print(f.read())

    六、文件处理的基本形式
    文件默认的打开模式是t模式:文本模式

    操作文件的模式有三种:r,w,a

    1. r:默认的打开模式,只读模式
    注意:当文件不存在时,报错
    f=open('a.txt',mode='r',encoding='utf-8') #mode='rt'
    f.write('123213213123 ') #抛出异常,不能写
    print(f.readable())
    print('=============>1')
    print(f.read())

    f.close()

    f=open('a.txt',mode='r',encoding='utf-8') #mode='rt'
    print(f.readline(),end='') # .readline()命令是表示一行一行的读取
    print(f.readline(),end='')
    print(f.readline(),end='')
    f.close()


    f=open('a.txt',mode='r',encoding='utf-8') #mode='rt'
    print(f.readlines()) # .readlines()命令是将读取的文件内容以换行符为界限存入列表内
    f.close()
    文件循环读取:
    1.
    with open('a.txt',encoding='utf-8') as f:
    for line in f:
    print(line)
    2.
    for line in f.readlines(): #循环文件不要使用该方式,因为在文件过大的情况下f.readlines()建立的列表有可能会撑爆内存
    print(line,end='')

    2. w:只写模式
    注意
    1、当文件存在时,清空
    2、当文件不存在时,创建空文档

    f=open(r'a1.txt',mode='w',encoding='utf-8') #默认是wt
    f.write('第一行 ')
    f.write('第二行 ')

    f.writelines(['111111 ','222222 ','333333 '])
    f.write('aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbb ccccccccccccccc ')

    f.close()

    注:每一次写入都会清空所有内容

    3. a:只追加写模式
    注意:
    在文件不存在时,创建空文件
    在文件存在时,光标直接跑到文件末尾添加内容

    f=open('access.log',mode='a',encoding='utf-8')
    print(f.writable())
    f.write('aaaaaaaaaaaaaaaaaaaa bbbbbbbbbbbbbbb ccccccccccccccc ')
    f.readlines() #报错

    f.close()



  • 相关阅读:
    获得最小的topK
    阿里凑单算法
    排序指标 --- 1、平均准确率均值 (Mean Average Precision-MAP) & 2、NDCG (normalized discounted CG-cumulative gain,累计增益)
    deepwalk算法
    tmp-动态规划-迷宫走法
    分治法-合并K个有序链表
    如何在创建hive表格的python代码中导入外部文件
    如何删除hive表格的分区
    pytorch中torch.nn构建神经网络的不同层的含义
    pytorch中如何使用预训练词向量
  • 原文地址:https://www.cnblogs.com/zhaodafa/p/8625323.html
Copyright © 2011-2022 走看看