#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os
import pathlib
import shutil
import sys
class file_manager():
    
    cls_working_folder = 'c:\\'
    @classmethod
    def create_file_in_working_folder(self, file_name):
        pass
    @classmethod
    def create_file_in_current_folder(self, file_name):
        pass
    
    @classmethod
    def create_file_for_nt(self, file):
        parent = os.getcwd()
        if file.find('\\') >= 0:
            parent = os.path.dirname(file)
        self.create_folder(parent)
        try:
            with open(file, 'w') as f:
                pass
        except Exception as e:
            print(e)
    @classmethod
    def create_folder(self, path):
        mk_path = pathlib.Path(path)
        mk_path.mkdir( parents=True, exist_ok=True )
    @classmethod
    def delete_folder(self, path):
        if self.is_a_exist_folder(path):
            try:
                shutil.rmtree(path)
            except Exception as e:
                print(e)
    @classmethod
    def delete_file(self, path):
        if self.is_a_exist_file(path):
            try:
                os.remove(path)
            except Exception as e:
                print(e)
    @classmethod
    def dump_to_file(self, file, context):
        pass
    @classmethod
    def load_from_file(self, file):
        context = ""
        if self.is_a_exist_file(file):
            try:
                with open(file,'r', encoding='utf-8') as f:
                    context = f.read()
            except Exception as e:
                print(e)
        return context
    @classmethod
    def load_lines_from_file(self, file):
        context = []
        if self.is_a_exist_file(file):
            try:
                with open(file,'r', encoding='utf-8') as f:
                    context = f.readlines()
            except Exception as e:
                print(e)
        return context        
    @classmethod
    def append_to_file(self, file, context):
        if self.is_a_exist_file(file):
            try:
                with open(file, 'a', encoding='utf-8') as f:
                    f.write(context)
            except Exception as e:
                print(e)
    @classmethod
    def get_folder_name(self,path):
        pass
    @classmethod
    def get_working_folder(self):
        pass
    @classmethod
    def get_parent_folder_name(self):
        pass
    @classmethod
    def is_a_exist_folder(self, path):
        return os.path.isdir(path)
    @classmethod
    def is_a_exist_file(self, path):
        return os.path.isfile(path)        
    @classmethod
    def get_sub_folder_list( self, path ):
        for root, dirs, files in os.walk(path, topdown=True):
            return dirs
    @classmethod
    def _get_sub_folder_list_2( self, path ):
        dirs = os.listdir(path)
        pass
    @classmethod
    def what_is_this(self, path):
        if not path:
            return "null"
        if self.is_a_exist_file(path):
            return "exist file"
        elif self.is_a_exist_folder(path):
            return "exist folder"  # C: will be ok 
        pos_sep = path.rfind('\\')
        if pos_sep < 0:
            return "invalid path" # dose not like C: 
        if not self.is_a_exist_folder( path[0:path.find('\\')] ):
            return "invalid path"
        ret = ""   
        pos_point = path.rfind('.')
        if pos_point > pos_sep:
            ret = "to make a file"
        else:
            ret = "to make a folder"
        dir_p = path
        while not self.is_a_exist_folder(dir_p):
            dir_p = os.path.dirname(dir_p)
        ret = ret + " with root:" + dir_p
        return ret
def _test():
    # print('hello')
    # print(env_config.root_path)
    # print(env_config.lib_path)
    # print(env_config.data_path)
    #file_manager.get_sub_folder_list(env_config.project_path)
    # print(file_manager.is_a_exist_file("c:\\test\\aaaaa.txt"))
    # print(file_manager.get_parent_folder_name())
    fo_gu = "c:\\test\\guyu\\1234\\2222"
    # fo_gu = 'this is not a path'
    f_gu = "c:\\test\\gu.txt"
    f_gu = "c:\\test\\gu\\gu.txt"
    # f_gu = "c:\\test\\gu\\aa.xlsx"
    # f_gu = "xxx"
    # file_manager.create_folder(fo_gu)
    # file_manager.delete_folder(fo_gu)
    # file_manager.delete_file(f_gu)
    # file_manager.create_file_for_nt(f_gu)
    print(sys.getdefaultencoding())
    file_manager.append_to_file(f_gu, "add a line")
    print(file_manager.is_a_exist_file(fo_gu))
    print(file_manager.is_a_exist_folder(fo_gu))
    # aa = os.path.dirname(fo_gu)
    # print(aa)
    # print(file_manager.what_is_this(fo_gu))
    # path = pathlib.Path(f_gu)
    # path = path.parent
    # path = os.path(f_gu)
    # print(path)
    pass
    
if __name__ == '__main__':
    _test()

lib_0001_file_manager.py的更多相关文章

  1. python调用py中rar的路径问题。

    1.python调用py,在py中的os.getcwd()获取的不是py的路径,可以通过os.path.split(os.path.realpath(__file__))[0]来获取py的路径. 2. ...

  2. Python导入其他文件中的.py文件 即模块

    import sys sys.path.append("路径") import .py文件

  3. import renumber.py in pymol

    cp renumber.py /usr/local/lib/python2.7/dist-packages/pymol import renumber or run /path/to/renumber ...

  4. python gettitle.py

    #!/usr/bin/env python # coding=utf-8 import threading import requests import Queue import sys import ...

  5. 解决 odoo.py: error: option --addons-path: The addons-path 'local-addons/' does not seem to a be a valid Addons Directory!

    情况说明 odoo源文件路径-/odoo-dev/odoo/: 我的模块插件路径 ~/odoo-dev/local-addons/my-module 在my-module中创建了__init__.py ...

  6. caffe机器学习自带图片分类器classify.py实现输出预测结果的概率及caffe的web_demo例子运行实例

    caffe机器学习环境搭建及python接口编译参见我的上一篇博客:机器学习caffe环境搭建--redhat7.1和caffe的python接口编译 1.运行caffe图片分类器python接口 还 ...

  7. 【转】Windows下使用libsvm中的grid.py和easy.py进行参数调优

    libsvm中有进行参数调优的工具grid.py和easy.py可以使用,这些工具可以帮助我们选择更好的参数,减少自己参数选优带来的烦扰. 所需工具:libsvm.gnuplot 本机环境:Windo ...

  8. MySqlNDB使用自带的ndb_setup.py安装集群

    在用Mysql做集群时,使用Mysql的NDB版本更易于集群的扩展,稳定和数据的实时性. 我们可以使用Mysql自带的工具进行集群安装与管理:ndb_setup.py.位于Mysql的安装目录bin下 ...

  9. 将做好的py文件打包成模块,供别人安装调用

    现在要将写完的3个py文件,打包. 步骤: 1.新建一个文件夹setup(名字随便取),在setup文件夹下,再新建一个文件夹financeapi. 2.将上面4个py文件拷贝至financeapi文 ...

  10. 使用pyInstaller发布PathMerge的exe版本(py转换成exe)

    前言 PathMerge是用python写的一个辅助文件夹合并的小工具,它的特点是不用担心合并后文件会丢失,旧文件会创建副本保存下来,除非你手动删除. 详情见:python开发目录合并小工具 Path ...

随机推荐

  1. 软赢软件控制器在Zstack云主机实现电机控制的方法

    工控领域上云实践-Zstack和软赢 在上面链接提到软赢的软件运动控制器在Zstack云主机上实现etherCat总线的电机控制,在后来的对比中发现,在云主机上虽然实现了让电机转起来,但是因为实时性还 ...

  2. 基于FLink实现的实时安全检测(一段时间内连续登录失败20次后,下一次登录成功场景)

    研发背景 公司安全部目前针对内部系统的网络访问日志的安全审计,大部分都是T+1时效,每日当天,启动Python编写的定时任务,完成昨日的日志审计和检测,定时任务运行完成后,统一进行企业微信告警推送.这 ...

  3. [ARC107D] Number of Multisets

    \(\text{Solution}\) 学习到了一些 \(dp\) 的 \(trick\) 设 \(f_{i,j}\) 表示用了 \(i\) 的元素,当前和为 \(j\) 的方案数 \(dp\) 有两 ...

  4. CCRD_TOC_2015_EULAR专刊

    中信国健风湿免疫临床通讯 EULAR2015专刊●目录 脊柱关节炎专题 OP0037 ASAS-CoMoSpA研究: 评价SpA不同分类标准的表现 OP0170 NSAIDs以优化剂量治疗中轴型SpA ...

  5. Linux操作命令(四) 1.which命令 2.whereis命令 3.locate命令

    1.which命令 which 命令的作用是,在 PATH 变量指定的路径中搜索可执行文件的所在位置.它一般用来确认系统中是否安装了指定的软件 确认是否安装了 gcc:which gcc 查看 cd ...

  6. input标签file文件上传图片本地预览(转载)

    <input type="file" name="img-up" id="img-up" value="" /&g ...

  7. js类型以及存储方式

    一.js内置类型 基础类型:String, number, null, undefine, boolean, symbol, bigint 引用类型:Object(包含普通对象Object,数组对象A ...

  8. 【vite+pinia】

    vite 轻量快速热重载,开发环境中不需要打包操作,可以快速冷启动 按需编译,不需要等待整个应用编译完成 pinia 支持vue2和vue3,是vue专属的状态管理库,允许跨组件或者页面 共享状态 与 ...

  9. 其他6-break,continue,exit,return区别

    break.continue.exit.return的区别 break 跳出整个循环语句 continue 跳过本次循环,进入下一次循环语句 exit n 退出当前shell,并返回状态值 retur ...

  10. leecode70. 爬楼梯

    70. 爬楼梯 假设你正在爬楼梯.需要 n 阶你才能到达楼顶. 每次你可以爬 1 或 2 个台阶.你有多少种不同的方法可以爬到楼顶呢? 示例 1: 输入:n = 2 输出:2 解释:有两种方法可以爬到 ...