[英]return text file path
我想返回文件的路徑,如果程序找到它,但我希望它繼續循環(或遞歸重復)程序,直到檢查完所有文件。
def findAll(fname, path):
for item in os.listdir(path):
n = os.path.join(path, item)
try:
findAll(n, fname)
except:
if item == fname:
print(os.idontknow(item))
所以我在調用這條路時遇到了麻煩,現在我有了
os.idontknow(item)
作為占位符
輸入是:
findAll('fileA.txt', 'testpath')
輸出是:
['testpat\\fileA.txt', 'testpath\\folder1\\folder11\\fileA.txt','testpath\\folder2\\fileA.txt']
根據我上面的評論,這是一個示例,它將從當前目錄開始並搜索所有子目錄,查找與fname
匹配的文件:
import os
# path is your starting point - everything under it will be searched
path = os.getcwd()
fname = 'file1.txt'
my_files = []
# Start iterating, and anytime we see a file that matches fname,
# add to our list
for root, dirs, files in os.walk(path):
for name in files:
if name == fname:
# root here is the path to the file
my_files.append(os.path.join(root, name))
print my_files
或者作為一個函數(更適合你的情況:)):
import os
def findAll(fname, start_dir=os.getcwd()):
my_files = []
for root, dirs, files in os.walk(start_dir):
for name in files:
if name == fname:
my_files.append(os.path.join(root, name))
return my_files
print findAll('file1.txt')
print findAll('file1.txt', '/some/other/starting/directory')
也許是這樣的事情?
import os
path = "path/to/your/dir"
for (path, dirs, files) in os.walk(path):
print files
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.