zoukankan      html  css  js  c++  java
  • Python进阶 文件

    Python进阶   文件

    一、预备知识

    1、文件是指储存在某种长期储存设备中的一段数据。计算机能够直接读取的以二进制类型储存的数据。文件有从能否被文本编辑软件查看分为文本文件(能)和二进制文件(不能被文本编辑器查看,但是能提供给其他软件使用)

    2、流:流是类似于文件的对象,可以支持一些文件对象的方法

    3、Python解释器自带数据结构,程序通过文件和流使得程序能够与外界交互

    4、管道字符 | ,管道字符连接多个多个命令,将一个命令的标准输出链接到下一个命令的标准输入

    5、fileinput实现延迟迭代,延迟的含义:只读取实际需要的文本部分

    6、函数open()-文件名区分大小写、read()-文件指针、f.readline()、f.readlines()、f.write()、f.writelines()、|和sys、close()、模块io中的方法:seek()-随机存取

    7、Python当中常用的文件/目录管理工作:os模块、sys模块式、fileinput模块

    8、fileinput模块:读取大文件,Readlines将占用大量内存,fileinput模块可以实现实现延迟行迭代

    import fileinput
    for line in fileinput.input(filename):
        process(line)
    

    二、文件模式

    1、打开文件,Python使用函数open函数,open函数位于自动导入的模块io

    with open("Boss直聘.txt", "a", encoding="utf-8") as file:
        file.write((gs + "," + cs + "," + gzyq + "," + str(rs) + "," + gz + "," + name + "," + detail))
        file.write("
    ")
    

    2、文件打开模式:默认模式 ‘rt’

    1、‘r’:读取模式,默认值

    2、‘w’:写入模式,写入文件,文件不存在时创建新的文件

    3、‘x’:独占写入模式,写入文件,文件存在时会引发 FileExistsErroe

    4、‘a’:附加模式,

    5、‘b’:二进制模式(与其他模式结合使用)

    6、‘t’:文本模式(默认值,与其他模式结合使用)

    7、‘+’:读写模式(与其他模式结合使用)

    8、编码策略:encoding="utf-8",Python解释器默认是是 UTF-8;编码出现错误策略:errors

    2、with语句:允许使用上下文管理器(支持两个方法的Python对象)

    1、wiht语句:Python解释器到达语句末尾时,将自动关闭文件,即是出现异常亦如此

        with open("Boss直聘.txt", "a", encoding="utf-8") as file:
            file.write((gs + "," + cs + "," + gzyq + "," + str(rs) + "," + gz + "," + name + "," + detail))
            file.write("
    ")
    

    2、、上下文管理器:支持__enter__和__exit__两种方法的对象。文件也可以作为上下文管理器,__enter__返回的是文件对象本身,方法__exit__是关闭文件。

    注:

    __enter__不接受任何参数,被调用后返回值被赋给as后面的变量

    __exit__接受三个参数,异常类型,异常对象和异常跟踪,Python解释器离开方法时调用并通过这些参数将引发的异常提供给该方法

    三、标准库:os、sys、fileinpu

    1、os模块:能够访问到多个与操作系统关系密切的变量和函数

    # os模块常用方法
      
    os.remove():  删除文件
      
    os.getcwd():  获取当前工作目录,(即当前Python脚本工作的目录路径)
    
    os.chdir('dirname'):  改变当前脚本的工作目录,相当于shell下的cd
    
    os.system('bash command'):  运行shell命令,直接显示(相当于启动一个全新的shell,然后去执行那条命令,命令执行完成过后,shell直接退出)
    
    os.curdir:  返回当前目录字符串名
    
    os.pardir:  返回当前目录的父目录的字符串名
    
    os.makedirs('dirname1/dirname2'):  可生成一个多层递归目录
    
    os.removedirs('dirname1'):  若目录为空,则删除,并递归到上一级目录,如若也为空,则删除,依次类推
    
    os.mkdir('dirname'):  创建一个目录
    
    os.rmdir('dirname'):  删除一个目录,若目录不为空则无法删除,报错
    
    os.listdir('dirname'):  显示指定目录下,所有的文件和子目录,包括隐藏文件
    
    os.rename('oldname','newname'):  重命名文件/目录,如果新的文件名/目录名已经存在,则会报错
    
    os.stat(' path/filename'):  获取文件/目录信息,并可以获取到文件的大小
    
    os.sep:  输出操作系统特定的路径分隔符 ,如:win 为‘\’,Linux为‘/’
    
    os.liesep:  输出当前平台使用的行终止符,如 win为 ‘	
    ’,Linux为‘
    ’
    
    os.pathsep:  输出用于分割文件路径的字符串
    
    os.name:  输出字符串指示当前使用平台,如 win ->'nt' ; Linux ->'posix'
    
    os.environ:  获取操作系统的环境变量
    
    os.path.abspath(path):  返回path规范化的绝对路径
    
    os.path.split(path):   将path分割成目录和文件名二元组返回
    
    os.path.dirname(path):  返回path的目录
    
    os.path.basename(path):  返回path最后的文件名(一个绝对路径只返回最后的文件名)
    
    os.path.exists(path):  判断路径是否存在,如果path存在,返回True;如果不存在,返回Flase
    
    os.path.isabs(path):  判断是否是绝对路径,如果是,则返回True
    
    os.path.isfile(path):  判断是否是一个文件
    
    os.path.isdir(path):  判断是否是一个存在的目录
    
    os.path.join(path1[,path2[,.......]]):  将路径和文件名分为一个列表中的两个元素,将它们拼起来
    
    os.path.getatime(path):  返回path所指向的文件或者目录的最后存取时间
    
    os.path.getmtime(path):  返回path所指向的文件或者目录的最后修改时间
    
    os.popen('dir'):  相当于打开了一个临时的文件存储打开的目录(可以赋给变量,字符串的形式) 
    

    四、文本文件的编码格式

    1、ASCII码(1个字节描述一个字符,而二进制一个字节有8位,所以字符描述情况有 2^8=256种)

    2、UTF-8(一种UNICODE编码) 使用1-6个字节描述一个字符。UTF-8基本包含世界各地所有的字符,大多数汉字使用的是3个字节定义的字符。

    注:

    1、Python2解释器中默认ASCII码,所以遇见中文字符会报错。如果使用中文字符,所有在程序前面加一行注释:# *-* coding:utf8 *-*。

    2、Python2中在字符串前增加‘u’可以提醒Python解释器该字符串是以uft8编码格式。如:x = u'石斛'

    # -*- coding: UTF-8 -*-
    
  • 相关阅读:
    java基础部分的一些有意思的东西。
    antdvue按需加载插件babelpluginimport报错
    阿超的烦恼 javaScript篇
    .NET E F(Entity Framework)框架 DataBase First 和 Code First 简单用法。
    JQuery获得input ID相同但是type不同的方法
    gridview的删除,修改,数据绑定处理
    jgGrid数据格式
    Cannot read configuration file due to insufficient permissions
    Invoke action which type of result is JsonResult on controller from view using Ajax or geJSon
    Entity model数据库连接
  • 原文地址:https://www.cnblogs.com/yinminbo/p/11332485.html
Copyright © 2011-2022 走看看