zoukankan      html  css  js  c++  java
  • 文件的操作以及修改当前操作的路径



    第一步:打开文件 f = open('text.txt', 'r',encoding='utf-8')
    第二部:操作文件 content = f.read()
    第三步:关闭文件 f.close

    注意点:(带有b模式的方式都不要指定编码格式)
    r 模式打开不存在文件要报错
    rb 二进制方式读取数据
    w 写入文件要指定编码方式,只用w打开文件会先把源文件数据清空
    wb 以二进制方式写入文件,不需要进行编码
    a 以追加方式写入文件,文件不存在会创建
    ab 以二进制方式追加写入文件,不需要编码

    import os # 操作文件和文件夹的模块
    import shutil # 操作文件和文件夹的高级模块

    # 1. 创建一个空的文件,文件名叫做AA.txt
    # file = open("AA.txt", "wb") # 默认把文件创建到当前工程目录里面
    # file.close()

    # 2. 重命名
    # os.rename("AA1.txt", "aa.txt")

    # 3. 删除指定文件
    # os.remove("aa.txt")

    # 4. 创建空的目录(文件夹)
    # os.mkdir("AAA")
    # 把文件创建到指定目录,加上对应的路径即可
    # file = open("AAA/aa.txt", "wb") # 默认把文件创建到当前工程目录里面
    # file.close()

    # os.remove("AAA/aa.txt")

    # file = open("AAA/aa.txt", "wb") # 默认把文件创建到当前工程目录里面
    # file.close()
    #
    # file = open("AAA/bb.txt", "wb") # 默认把文件创建到当前工程目录里面
    # file.close()

    # 5. 获取指定目录下的所有文件名
    # file_name_list = os.listdir("AAA")
    # print(file_name_list)

    # 6. 获取当前操作目录的路径
    path = os.getcwd()
    print(path)

    # 获取当前目录下的所有文件名
    file_name_list = os.listdir(".")
    print(file_name_list)

    # 7. 切换目录
    # os.chdir("AAA")

    path = os.getcwd()
    print(path)


    # os.mkdir("BBB")

    # 8. 删除空的目录
    # os.rmdir("BBB")

    # 切换到上一级目录
    # os.chdir("..")


    # 扩展:
    # 1. 删除非空目录

    # os.rmdir("AAA")
    # shutil.rmtree("AAA") 文件下面还有文件要用shutil
    # 2. 判断文件是否存在
    result = os.path.exists("1.png")
    print(result)
    result = os.path.exists("AA/777.txt")
    print(result)

    # 3. 判断文件夹是否存在
    result = os.path.exists("AA")
    print(result)

    # 4. 判断是否是一个文件
    result = os.path.isfile("AA/666.txt")
    print(result)
    # 5. 判断是否是一个文件夹
    result = os.path.isdir("AA")
    print(result)

    # 6. 获取指定路径的文件名
    file_name = os.path.basename("A/B/1.txt")
    print(file_name)
    # 7. 获取指定路径的文件夹的路径
    path = os.path.dirname("A/B/1.txt")
    print(path)

    # 8. 可以对文件进行分割,获取文件名和文件的后缀, "1.txt" -> 1 .txt
    file_name, end_str = os.path.splitext("1.txt")
    print(file_name, end_str)


    seek方法(定位光标) 必须以'rb'方式打开
    (三个方式,0是相对文件开头,1是相对上次读取方式,2是相对文件末尾,前面参数必须是负数)

    for i in f:
    offs = -10
    while True:
        f.seek(offs, 2)
        data = f.readlines()
        if  len(data) > 1:
            print('文件的最后一行是:{}'.format(data[-1].decode(utf-8))
            break
        offs * 2
    View Code


    # 1. 根据用户输入的文件名,对文件进行拷贝,拷贝后的名字是在原文件的基础上加上[复件],
    # 比如: 1.txt -> 1[复件].txt
  • 相关阅读:
    vue中使用clipboard.js复制分本
    聊聊IOCP,聊聊异步编程
    dubbo RPC超时异常小结
    redis4.0 集群,jedis客户端连接配置
    Centos7 Zookeeper
    阿里云Centos 7.4 mssql-server
    Redis4.0 Cluster — Centos7
    Elasticsearch学习笔记 一
    Centos7安装ES 和 Docker搭建ES
    使用Docker快速创建.Net Core2.0 Nginx负载均衡节点
  • 原文地址:https://www.cnblogs.com/wjun0/p/11515366.html
Copyright © 2011-2022 走看看