python中查找文件
① python如何查找以數字命名的文件
遍歷文件夾下找到所有文件
判斷當前目錄下文件的文件名是否是純數字的,然後加入到列表中輸出。
importos
num_filelist=[]
forroot,dirs,filesinos.walk(r"E: est"):
fortmpinfiles:
(shotname,extension)=os.path.splitext(tmp)
ifshotname.isalnum():
num_filelist.append(os.path.join(root,tmp))
printnum_filelist
② 用python實現一個本地文件搜索功能。
import re,os
import sys
def filelist(path,r,f):
"""
function to find the directions and files in the given direction
according to your parameters,fileonly or not,recursively find or not.
"""
file_list = []
os.chdir(path)
filename = os.listdir(path)
if len(filename) == 0:
os.chdir(os.pardir)
return filename
if r == 1: ##
if f == 0: # r = 1, recursively find directions and files. r = 0 otherwise.
for name in filename: # f = 1, find files only, f = 0,otherwise.
if os.path.isdir(name): ##
file_list.append(name)
name = os.path.abspath(name)
subfile_list = filelist(name,r,f)
for n in range(len(subfile_list)):
subfile_list[n] = '\t'+subfile_list[n]
file_list += subfile_list
else:
file_list.append(name)
os.chdir(os.pardir)
return file_list
elif f == 1:
for name in filename:
if os.path.isdir(name):
name = os.path.abspath(name)
subfile_list = filelist(name,r,f)
for n in range(len(subfile_list)):
subfile_list[n] = '\t'+subfile_list[n]
file_list += subfile_list
else:
file_list.append(name)
os.chdir(os.pardir)
return file_list
else:
print 'Error1'
elif r == 0:
if f == 0:
os.chdir(os.pardir)
return filename
elif f == 1:
for name in filename:
if os.path.isfile(name):
file_list.append(name)
os.chdir(os.pardir)
return file_list
else:
print 'Error2'
else:
print 'Error3'
'''
f = 0:list all the files and folders
f = 1:list files only
r = 1:list files or folders recursively,all the files and folders in the current direction and subdirection
r = 0:only list files or folders in the current direction,not recursively
as for RE to match certern file or dirction,you can write yourself, it is easier than the function above.Just use RE to match the result,if match,print;else,pass
"""
③ 如何用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'
④ 用Python查找某文件夾的文件名稱,並對文件名進行更改的庫名稱是什麼
要在文件夾中搜索文件名並在 Python 中重命名文件,可以使用模塊和模塊。該模塊提供基於通配符模式匹配文件路徑的函數,而該模塊提供用於處理文件和文件夾(如重命名文件)的函數。globosglobos
下面是如何使用 and 模塊在文件夾中搜索文件名並重命名文件的示例:globos
此代碼使用該函數搜索指定文件夾中的文件,使用通配符模式匹配所有文件。然後,它循環訪問文件名,並使用該函數將文件名拆分為其基本名稱和擴展名。然後,它會向基名稱添加新後綴,並使用該函數重命名文件。glob.glob()*os.path.splitext()os.rename()
總體而言,和模塊提供了一種強大而靈活的方式來搜索文件夾中的文件名並在 Python 中重命名文件。您可以使用這些模塊來實現各種文件管理任務,例如基於不同模式搜索文件、批量重命名文件以及在文件夾之間移動或復制文件。
回答不易望請採納
⑤ 一個python查找文件的腳本編寫,高懸賞
此問題的代碼如下:
importos.path
importsys
deffind_file(root,name):
files=os.listdir(root)
forfinfiles:
iff==name:
returnTrue
else:
p=os.path.join(root,f)
ifos.path.isdir(p):
iffind_file(p,name):
returnTrue
returnFalse
if__name__=='__main__':
root=sys.argv[1]
name=sys.argv[2]
found=find_file(root,name)
print(found)
請注意python的縮進格式:
⑥ python 怎麼根據文件名稱找文件
在只知道部分文件名的條件下也是可以搜索文件的,方法如下:
1、雙擊桌面圖標「計算機」打開資源管理器;
2、在打開的界面左上角找到關閉選項下的搜索框,在搜索框中輸入知道的部分文件名,按ENTER鍵開始搜索;
3、開始搜索後在下方選擇「自定義」左鍵單擊,然後選擇搜索區域,選擇之後點擊「確定」按鈕即可。
如果不清楚具體區域可以選擇所有硬碟分區進行搜索。
⑦ 請問如何用python實現查找指定文件
若不包含子目錄的遍歷:
importglob
forfilenameinglob.glob("f:/py/*.exe"):
printfilename
否則可以:
importos
importfnmatch
defiterfindfiles(path,fnexp):
forroot,dirs,filesinos.walk(path):
forfilenameinfnmatch.filter(files,fnexp):
yieldos.path.join(root,filename)
forfilenameiniterfindfiles(r"f:/py","*.exe"):
printfilename
⑧ python從文件中查找數據並輸出
#注意,這里的代碼用單空格縮進
importre
#寫上你的文件夾路徑
yourdir=""
keywordA="keywordA"
keywordB="keywordA(d+)"
files=[os.path.join(yourdir,f)forfinos.listdir(yourdir)]
withopen("out.txt","w")asfo:
forfinfiles:
fname=os.path.basename(f)
withopen(f,"r")asfi:
forlineinfi:
ifline.strip():
searchA=re.search(keywordA,line.strip())
ifsearchA:
searchB=re.search(keywordB,line.strip())
ifsearchB:
print(fname,serachB.groups()[0],sep=" ",file=fo)
⑨ 如何用python查詢文件路勁
最近在用Python腳本處理文件夾下面的文件名的搜索和重命名。其中碰到如何遞歸遍歷文件夾下面所有的文件,找到需要的文件,並且重命名的問題。其實如果看看Python的document,還是比較簡單的,這里直接給出使用方法,免得大家還要花精力去查找。
環境:
文件夾結構:
----path1
----path1-1
----path1-1.1.txt
----path1-2
----path1.1.txt
----path2
----recursiveDir.py
文件夾結構如上所示。
代碼分析(recursiveDir.py):
[python] view plain
<span style="font-size:18px;">import os
'''''
本腳本用來演示如何遍歷py腳本所在文件夾下面所有的文件(包括子文件夾以及其中包含的文件)。
重點演示如何獲取每個文件的絕對路徑。注意os.path.join(dirpath, filename)的用法。
'''
rootdir = os.getcwd()
print('rootdir = ' + rootdir)
for (dirpath, dirnames, filenames) in os.walk(rootdir):
#print('dirpath = ' + dirpath)
for dirname in dirnames:
print('dirname = ' + dirname)
for filename in filenames:
#下面的列印結果類似為:D:\pythonDirDemo\path1\path1-1\path1-1.1.txt
print(os.path.join(dirpath, filename))
if(filename=='path1-1.1.txt'):
os.chdir(dirpath)
#os.rename(os.path.join(dirpath, filename), dirpath + os.sep + 'path1-1.1.new.txt')
os.rename('path1-1.1.txt', 'path1-1.1.new.txt')
#os.remove(os.path.join(dirpath, filename))
#下面的輸出為fileName = path1-1.1.txt,並未包含絕對路徑,所以需要使用os.path.join來鏈接,獲取絕對路徑
print('fileName = ' + filename)
print('------------------one circle end-------------------')</span>
所以可以看到程序中使用os.path.join(dirpath, filename)來拼接出絕對路徑出來。注意下面的重命名用法,可以將工作目錄切換到os.chdir(dirpath),這樣就可以直接用os.rename(oldfile, newfile).Python會自動到dirpath下面查找oldfile並且重命名為newfile。注意工作目錄的含義:在Python的GUI中,使用os.getcwd()可以獲取到當前工作目錄。測試如下:
[html] view plain
<span style="font-size:18px;">>>> os.chdir('D:')
>>> os.getcwd()
'D:\\pythonDirDemo\\path1\\path1-1'
>>> os.chdir('D:\\')
>>> os.getcwd()
'D:\\'</span>
可見卻是可以用chdir改變工作目錄。這個代碼只是在重命名的時候用到的小技巧而已,大家知道有這個東西就行了,不過調用chdir之後,後續再獲取getcwd()就會被影響,所以警惕。