美文网首页
Python基础-day10

Python基础-day10

作者: 陈small末 | 来源:发表于2019-01-11 08:56 被阅读0次

    list

    ​ os模块

    ​ os.path模块

    ​ 文件操作

    os模块 sys解析命令行参数(去学习)

    import os
    执行系统命令
    os.system(命令)
    
    res = os.name #nt 表示的是windows  posix 表示Linux UNIX Mac
    print(res)
    
    # res = os.uname() #操作系统的信息  windows报错
    # print(res)
    
    # 获取当前路径
    res = os.curdir
    print(res)
    
    # 获取当前路径的绝对表示
    res = os.getcwd()
    print(res)
    
    # 用来修改当所在的一个位置
    res = os.chdir("D:\MyDownloads")
    print(os.getcwd())
    
    # 创建目录
    # res = os.mkdir(r"E:\工作目录\基础阶段\day10\资料\test")
    # print(res)
    
    # 创建目录 如果父级目录不存在 那么也会被创建
    # os.makedirs(r"E:\工作目录\基础阶段\day10\资料\test\a\b")
    
    #  删除目录(只能删除空目录)
    # os.rmdir(r"E:\工作目录\基础阶段\day10\资料\test\a\b")
    
    #
    # os.removedirs(r"E:\工作目录\基础阶段\day10\资料\test\a")
    
    # 重命名目录
    # os.rename(r"E:\工作目录\基础阶段\day10\资料\test\a\b", r"E:\工作目录\基础阶段\day10\资料\test\a\bb")
    # 重命名文件(注意:要写绝对路径)
    # os.rename(r"E:\工作目录\基础阶段\day10\资料\test\a\s.txt", r"E:\工作目录\基础阶段\day10\资料\test\a\s.py")
    
    #创建文件(windows报错)
    # os.mknod(r"index.txt")
    # os.mknod("t.txt")
    # 或者使用open
    # open(r"E:\工作目录\基础阶段\day10\资料\test\a\s.txt", "w")
    
    # 删除文件
    # os.remove(r"E:\工作目录\基础阶段\day10\资料\test\a\s.txt")
    
    # 获取某个目录下的文件或者目录的名字
    res = os.listdir(r"E:\工作目录\基础阶段\day09\视频")
    # print(res)
    
    # 获取文件的信息
    res = os.stat(r"E:\工作目录\基础阶段\day10\资料\test\a\s.py")
    print(res)
    
    # 获取环境变量
    res = os.environ
    print(res.get("path"))
    

    os的path操作(比较重要)

    from os import path as p
    
    # 判断是不是文件
    res = p.isfile(r"E:\工作目录\基础阶段\day10\资料\test\a")
    print(res)
    
    # 判断文件或目录是否存在
    res = p.exists(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
    print(res)
    
    res = p.abspath("666.txt")
    print(res)
    
    # print(__file__)
    # 当前程序的绝对路径
    print(p.abspath(__file__))
    
    # 获取目录末尾的文件名字
    res = p.basename(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
    print(res)
    
    # 获取当前程序运行文件的文件名字
    current_file_name = p.basename(__file__)
    print(current_file_name)
    
    # 获取目录
    res = p.dirname(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
    print(res)
    # 获取当前程序运行文件的所属目录
    print(p.dirname(__file__))
    
    # 切分路径 得到是元组
    res = p.split(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
    print(res)
    res = p.split(r"E:\工作目录\基础阶段\day10\资料\test\a")
    print(res)
    
    # 切分文件的后缀 如果给出的是目录 那么切分得到元组 第二项是空
    res = p.splitext(r"E:\工作目录\基础阶段\day10\资料\test\a")
    print(res)
    print(p.splitext(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt"))
    
    # 路径拼接
    res = p.join(r"E:\工作目录\基础阶段\day10\资料", "999.txt")
    print(res)
    print(p.exists(res))
    # 在运行文件的同级 创建一个index.py文件
    # 先确定程序运行路径
    my_dir = p.dirname(__file__)
    # 拼接文件的绝对路径
    file_path = p.join(my_dir, "index.py")
    # 使用open
    # open(file_path, "w")
    
    # print(file_path.isdir)
    # 判断一个是不是目录
    res = p.isdir(file_path)
    print(res)
    
    # 获得文件大小
    res = p.getsize(r"E:\工作目录\基础阶段\day10\资料\test\a\666.txt")
    print(res)
    

    文件操作(读 写)

    输入输出(io流)

    ​ 参考物:程序(文件)

    输入:将内容或数据 写入到文件的过程 input raw_input

    输出:从文件或程序 读出内容 print()

    文件读操作

    我们要操作文件 必须要先打开文件

    open函数(文件路径,打开模式)

    打开模式

    w 只写模式 如果文件不存在 就创建 如果存在 将会覆盖掉原来的所有内容
    a 追加模式 如果文件不存在 就创建 如果存在 在其文件末尾继续填入新的内容
    r (read)  只读模式 如果不存在就报错
    x 写入模式 但是如果文件存在 那么保存
    w+ r+ a+ x+ 读写模式
    wb 写二进制数据
    rb 读二进制数据
    ab 追加二进制数据
        二进制方式保存写入数据例子:图片 音频文件 视频文件
    

    read函数

    如果参数不写 那么就把文件全都读取出来,如果是给了数字 那就读取规定个数的字符
    

    注意:程序不能处理外部垃圾,也就意味着文件句柄 使用完毕以后需要手动关闭,python自动关闭文件不稳定

    我们最好自己手动去关闭(close) 养成一个好习惯

    文件句柄.closed 来判断是不是已经被关闭了

    如果不想写close 可以使用with open() as 句柄这样的形式 示例如下

    with open("lal.txt", "r") as f2,  open("lal.txt", "rb") as f4:
        print(f2.read())
        print(f4.read(2).decode("gbk"))
    

    文件指针

    ​ read读取以后 文件指针向下移动 不会自己跑到文件的开始

    ​ tell 获取当前指针位置

    ​ seek 移动文件指针

    ​ 如果写的是seek(0) 回到文件的头

    ​ 如果写了两个参数(偏移量(默认是向右,输过是负数 就向左移动), 参考位置(0表文件头 1表当前位置,2文件的末尾))

    readline(limit)函数

    ​ 默认是读取一行,当我们指定limit参数值后 他就读取该行的最多limit个内容

    写操作

    ​ 先打开文件 打开模式就要写有关系了 w wb w+ a x

    ​ write(字符)

    ​ writelines(序列)

    with open("heheda.txt", "w") as f1:
        f1.write("再带你们一周!!!")
    
    # with open("append.txt", "a") as f2:
    #     f2.write("需要发票!!!滴滴的也行\nuuuuu")
    #
    f3 = open("new.txt", "a+")
    data = ["新诗\n", "你是我永远都不想修复的bug\n", "爱你就是个死循环\n"]
    f3.writelines(data)
    f3.close()
    

    循环读取

    ​ 解决文件过大 不能一次读取的问题

    import os
    path = r"E:\工作目录\基础阶段\day10\资料\作业\youbian.txt"
    f1 = open(path, "r", encoding="utf-8")
    has_read = 0
    # 获取文件大小
    file_size = os.path.getsize(path)
    READ_NUM = 100
    while has_read < file_size:
        res = f1.read(READ_NUM)
        # print(res)
        if len(res) <= 0:
            pass
        else:
            print(res)
        has_read += READ_NUM
    
    

    复制文件

    ​ 复制的是数据:将一个文件的内容读取出来然后 写入新的文件

    解归档

    把我们程序里面的数据结构 完整保存到我们文件里

    以及读取

    使用pickle包

    import pickle
    
    a = {"hehe": "88", "age":12}
    # 归档
    # my_file = open("my_pickle.txt", "wb")
    
    # pickle.dump(a, my_file)
    
    # 解档
    my_file = open("my_pickle.txt", "rb")
    res = pickle.load(my_file)
    print(res, type(res))
    my_file.close()
    

    相关文章

      网友评论

          本文标题:Python基础-day10

          本文链接:https://www.haomeiwen.com/subject/qhhvrqtx.html