所以,我希望我正確理解你,如果我這應該有所幫助。
import fnmatch
import os
def walk_directories(self, Dir, pattern):
root = Dir
for root, directories, files in os.walk(Dir):
for basename in files:
if fnmatch.fnmatch(basename, pattern):
_file_path = os.path.join(root, basename)
return _file_path
這是一個不同的目的而作出,但它應該滿足您的需求,以及,我得到這個要找到包含在包含在單個根目錄中「未知」的子目錄中的文件。所有你需要知道的是文件名和根目錄(主文件夾),這也適用於部分文件名,基本上如果你有三個文件命名爲例如「pdf1」,「pdf2」和「pdf3」需要做的是向模式參數提供。
誠實地說,如果你知道你和你一起工作的目錄和文件可以做得更容易,但看起來更像是矯枉過正,但這樣做很簡單。
基本上你提供在「目錄」中的參數和文件夾路徑中啪參數文件名
walk_directories("C:\\Example folder", "Example File.pdf") # or simply "pdf1" etc..
你會注意到這個函數返回一個變量,它是在這種情況下,完整的文件路徑你正在使用的是什麼。然後
_path = walk_directories("C:\\example folder", "example file.pdf")
_path將包含
C:\\example folder\\example file.pdf
,所以你可以像
def read(self, path):
try:
if os.path.isfile(path):
with open(path, 'r') as inFile:
temp = inFile.read()
except IOError as exception:
raise IOError('%s: %s' % (path, exception.strerror))
return temp
「路徑」 參數會在這種情況下是_path產生的變量返回(臨時)會從那裏文件中包含的文本就像這樣簡單
def write(self, path, text):
try:
if os.path.isfile(path):
return None
else:
with open(path, 'w') as outFile:
outFile.write(text)
except IOError as exception:
raise IOError("%s: %s" % (path, exception.strerror))
return None
所以在這裏它是非常直接的,以及提供包含要寫入的文本的路徑和變量。
可能的重複[在Python中查找擴展名爲.txt的目錄中的所有文件](http://stackoverflow.com/questions/3964681/find-all-files-in-directory-with-extension-txt-in- python) –
沒有人這樣說過。但希望你知道pdf的不是純文本文件? – danidee