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())
文件操作
最新推荐文章于 2024-02-29 09:07:03 发布