如何用Python实现查找"/"目录下的文件夹或文件,感谢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用Python实现查找"/"目录下的文件夹或文件,感谢相关的知识,希望对你有一定的参考价值。
如何用Python实现查找"/"目录下的文件夹或文件,运行脚本-->输入查找值-->查找-->反馈
如果文件存在, 我需要将文件的位置显示出来或者记录到专门的文档中怎么实现呢
还有就是“/" 下面还有很多文件夹,是否能实现深入底层文件夹查找呢?
非常感谢各位
import os
name=raw_input('filename:') #在这里输入你的查找值
a=os.listdir('/') #把所有/目录下的文件,目录存放入a
if name in a: #如果查找值在/目录下,进行进一步判断
if os.path.isdir(name): #判断是否为目录
print 'dir'
elif os.path.isfile(name) and os.pathislink(name): #符号连接即是文件又是link所以双重判断
print 'link'
elif os.path.isfile(name): #判断是否文件
print 'file'
else: #linux上文件类型多,不符合上面三种打印0ther
print 'other'
else: #不存在打印‘not exist’
print 'not exist'追问
非常感谢
如果文件存在 我需要将文件的位置显示出来或者记录到专门的文档中怎么实现呢
亲 你这个问题问的犀利!
‘/’路径下是总的树节点,下面包含/root,/home,/sbin,/bin,/dev,/var,/dev等等的目录(你说的文件夹),如果是要实现这样的功能也是可以的不停的循环如果是目录就进入,找到停止,找不到在找目录在进入,如此反复。
一招简单的:
import os
name=raw_input('filename:') #在这里输入你的查找值
command='find / -name '+name+' >/root/a.txt'
os.system(command) #查找包含查找值的文件,查找的结果写入/root目录下的a.txt文件里
我是Python新手,多多包含
我继续试试,请问大虾可以模糊查询吗,比如我ls B420*.zip 这样用*代替不知道的
其实上面用的python的是os.system()函数,他可以执行系统指令,相当于你在linux上执行
find / -name B420*.zip >/root/a.txt find指令是/目录下所有的目录中的文件查找,可以模糊查找,用ls B420*.zip 只能在你当前所在的路径下查找是否有该文件
#-*- encoding: utf-8 -*-
from sys import stdin
from os import walk
from os.path import join
name = stdin.readline().rstrip()
for root, dirs, files in walk(\'/\'):
if name in dirs or name in files:
print(join(root, name))追问
非常感谢
如果文件存在, 我需要将文件的位置显示出来或者记录到专门的文档中怎么实现呢
还有就是“/" 下面还有很多文件夹,是否能实现深入底层文件夹查找呢?
你有运行过来尝试么?
print那一行会显示出来。
walk会进入到子文件夹
我刚刚运行了你的程式,是的 ,可以查询子文件夹
本回答被提问者采纳 参考技术B import globdef look_up(path):
for f in glob.glob(\'%s/*\' % path):
print f追问
如果文件存在, 我需要将文件的位置显示出来或者记录到专门的文档中怎么实现呢
还有就是“/" 下面还有很多文件夹,是否能实现深入底层文件夹查找呢?
这里我只用了glob.glob('%s/*'%path),也就是在path下面的所有文件额文件夹,如果再深一层就用glob.glob('%s/*/*'%path),以此类推,这里做了个循环,打印出的f就是文件的路径,你可以自己试一下
参考技术C dirs = [dir for dir in dirs_a if not '(自己定义的符号一般是 . )' in dir] 来进行筛选以上是关于如何用Python实现查找"/"目录下的文件夹或文件,感谢的主要内容,如果未能解决你的问题,请参考以下文章