我有一个脚本遍历所有目录以连接一个名为classpath的变量。以.jar
和.properties
结尾的文件将添加到类路径变量..
但这太普通了。我希望这只能遍历名为“lib”或“properties”的目录。
我知道我需要在这里坚持:
if os.path.basename(root) in ('lib', 'properties'):
但是不了解python或os.walk以了解它的发展方向。请指教。提前谢谢!
我正在使用python 2.4
#! /usr/bin/env python
import os
import sys
import glob
java_command = "/myapps/java/home/bin/java -classpath "
def run(project_dir, main_class, specific_args):
classpath = []
for root, dirs, files in os.walk(project_dir):
has_properties = False
for f in files:
if f.endswith('.jar'):
classpath.append(os.path.join(root, f))
if f.endswith('.properties'):
has_properties = True
if has_properties:
classpath.append(root)
classpath_augment = ':'.join(classpath)
print java_command, classpath_augment, main_class, specific_args
答案 0 :(得分:3)
将它贴在循环的顶部:
def run(project_dir, main_class, specific_args):
classpath = []
for root, dirs, files in os.walk(project_dir):
if os.path.basename(root) not in ('lib', 'properties'):
continue
has_properties = False
for f in files:
if f.endswith('.jar'):
classpath.append(os.path.join(root, f))
if f.endswith('.properties'):
has_properties = True
if has_properties:
classpath.append(root)
classpath_augment = ':'.join(classpath)
print java_command, classpath_augment, main_class, specific_args
现在它将跳过任何未命名为lib
或properties
的目录。