Python Cookbook 2Nd Edition Jun 1002005 [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Python Cookbook 2Nd Edition Jun 1002005 [Electronic resources] - نسخه متنی

David Ascher, Alex Martelli, Anna Ravenscroft

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید







Recipe 2.18. Finding a File Given a Search Path


Credit: Chui Tey


Problem


Given a search path (a string of
directories with a separator in between), you need to find the first
file along the path with the requested name.


Solution


Basically, you need to loop over the directories in the given search
path:

import os
def search_file(filename, search_path, pathsep=os.pathsep):
"" Given a search path, find file with requested name ""
for path in search_path.split(pathsep):
candidate = os.path.join(path, filename)
if os.path.isfile(candidate):
return os.path.abspath(candidate)
return None
if _ _name_ _ == '_ _main_ _':
search_path = '/bin' + os.pathsep + '/usr/bin' # ; on Windows, : on Unix
find_file = search_file('ls', search_path)
if find_file:
print "File 'ls' found at %s" % find_file
else:
print "File 'ls' not found"


Discussion


This recipe's
"Problem" is a reasonably frequent
task, and Python makes resolving it extremely easy. Other recipes
perform similar and related tasks: to find files specifically on
Python's own search path, see Recipe 2.20; to find all files matching
a pattern along a search path, see Recipe 2.19.

The search loop can be coded in many ways, but returning the path
(made into an absolute path, for uniformity and convenience) as soon
as a hit is found is simplest as well as fast. The explicit
return None after the loop is not strictly needed,
since None is returned by Python when a function
falls off the end. Having the return statement
explicitly there in this case makes the functionality of
search_file much clearer at first sight.


See Also


Recipe 2.20; Recipe 2.19; documentation for the
module os in the Library
Reference
and Python in a
Nutshell
.


    / 394