文件操作

import os
from os import listdir
import os.path
from time import strftime, localtime
import chardet


def mkdir(path):
    '''
    检查目录路径是否存在,如果不存在则穿件一个文件
    :param path: 文件目录路径
    :return:
    '''
    # 引入模块
    # 去除首位空格
    path = path.strip()
    # 去除尾部 \ 符号
    path = path.rstrip("\\")
    # 判断路径是否存在
    # 存在     True
    # 不存在   False
    isExists = os.path.exists(path)
    # 判断结果
    if not isExists:
        # 如果不存在则创建目录
        # 创建目录操作函数
        os.makedirs(path)
        print(path + ' 目录创建成功')
        return path
    else:
        # 如果目录存在则不创建,并提示目录已存在
        print(path + ' 目录已存在')
        return path


# mkdir(mkpath)

def createfile(name):
    '''
    当前路径下创建一个新文件
    :param name: 新文件名
    :return:
    '''
    createdir = mkdir(os.getcwd() + '/' + name.split('.')[0] + os.path.basename(__file__).split('.')[0])
    path = createdir + '/' + name
    file = open(path, 'w')
    file.close()
    return path


# print(createfile('pa.py'))

def findfilepaths(path):
    '''
    寻找文件地址
    :param path: 限制搜索范围
    :return:
    '''

    listfilepath = []
    for roots, dirs, files in os.walk(path):
        if len(files) != 0:
            for file in files:
                listfilepath.append(roots + '/' + file)
    return ''.join(listfilepath)


def finddripath(mypath=os.getcwd()):
    '''
    显示当前路径上级文件夹
    :param mypath:
    :return:
    '''
    mydir = ''.join([d + '/' for d in mypath.split('/')[:-1]])
    for (roots, dirs, files) in os.walk(mydir):
        for file in files:
            print(roots + file)


def NowTime():
    '''
    字符串形式显示当前时间
    :return:
    '''
    return strftime('%Y-%m-%d-%H-%M-%S', localtime())


def Nowdate():
    '''
    字符串形式显示当前日期
    :return:
    '''
    return NowTime()[:-9]


def constantpath(url, tablename, myclass=None):
    try:
        return createfile(tablename
                          + 'From'
                          + url.split('.')[1]
                          + Nowdate()
                          + '.csv')
    except Exception as Error:
        print(Error)


def FunctionForTargetPath(dirname, filename):
    '''
    定位一个目标文件路径
    :param dirname: ->文件夹名称
    :param filename: ->文件名称及格式
    :return:
    '''
    return ''.join(["/" + i for i in os.getcwd().split('/')[:-1]][1:] + ['/' + dirname + '/'] + [filename])


def SuchFile(name, mytype='any', trajectory_filename=r"/"):
    '''
    User目录下搜索文件位置,给出所有名称含有关键字的文件地址
    :param name: -> 文件名
    :param mytype: -> 文件类型
    :param trajectory_filename: -> 文件搜索路径范围
    :return:
    '''
    file_list = []
    for roots, dirs, files in os.walk(trajectory_filename):
        for file in files:
            if name in file:
                file_list.append(roots + '/' + file)
    if mytype == 'any':
        return [e for e in file_list if mytype]
    else:
        return [e for e in file_list if mytype == e.split('.')[-1]]


def findstring(string):
    '''搜索文件名含有关键字的文件'''
    __import__('os').system('grep -rn ' + str(string) + ' * > ' + string + '.log')
    for i in open(os.getcwd() + '/' + string + '.log').readlines():
        print(i)
    for i in open(SuchFile(string)[0]).readlines():
        print(i)


def listfile():

    '''
    列出当前文件夹下所有文件及路径
    :return:
    '''
    from DataStructureModule import deep_flatten
    dirs = deep_flatten([[a+i for i in c] for a, b, c in os.walk(os.getcwd()) if ''.join(c) ])
    print('count files :',(len(dirs)))
    return dirs
if __name__ == '__main__':
    #findstring('decode').__repr__()
    print(listfile())


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值