You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
1.7 KiB
50 lines
1.7 KiB
# 帮助用户查找文件
|
|
# 由于windows自带的文件查找很是垃圾,所以我们自己写了一个查找文件的程序
|
|
# 1、用户输入文件的关键字
|
|
# 2、用户可以输入一个大概的位置,如果用户不输入,默认为/
|
|
# 3、返回查找了多少个文件和找到了相关的文件有多少
|
|
|
|
import os
|
|
|
|
allfile = []
|
|
kwfile = []
|
|
|
|
|
|
def check_exists(dir):
|
|
if os.path.exists(dir):
|
|
return True
|
|
else:
|
|
print('目录不存在,使用默认目录')
|
|
global p
|
|
if os.name == 'nt':
|
|
p = 'c:\\'
|
|
elif os.name == 'posix':
|
|
p = '/'
|
|
|
|
# 功能相关
|
|
|
|
def check_abs(path):
|
|
os.chdir(path)
|
|
return os.path.abspath(path)
|
|
|
|
kw = input('请输入需要查询文件中的关键字[default "network"]:')
|
|
if kw == '':
|
|
kw = 'network'
|
|
p = input('请输入文件的大概位置[default C:|/]:')
|
|
check_exists(p)
|
|
|
|
def main(path):
|
|
path = check_abs(path) # 执行函数修改成绝对路径 用户输入./test,cd ./test && pwd
|
|
dirlist = os.listdir(path) # 列表 = ls -A ./
|
|
for i in dirlist: # 循环这个列表,获得目录下面的所有文件
|
|
allfile.append(os.path.join(path,i)) # 将文件追加到空列表 allfile 中
|
|
if os.path.isdir(os.path.join(path,i)): # 使用isdir来判断是否是目录
|
|
main(os.path.join(path,i))
|
|
if kw in i: # 使用in来判断是否包含关键字
|
|
kwfile.append(os.path.join(path,i))
|
|
|
|
main(p)
|
|
for i in kwfile:
|
|
print(i)
|
|
print(f'在{len(allfile)}个文件中进行了查找')
|
|
print(f'共查找到{len(kwfile)}个相关文件') |