我正在做一个奇美拉需要打开的程序,我打开它:
def generate_files_bat(filename):
f = open(filename, 'w')
text = """echo off SET PATH=%PATH%;"C:\\Program Files (x86)\\Chimera 1.6.1\\bin" chimera colpeps.cmd"""
print >>f, text
f.close()
但我需要在python程序运行的计算机上找到Chimera。有没有办法可以通过任何计算机中的python程序搜索路径?
答案 0 :(得分:1)
一般来说,我认为搜索程序的路径并不是一个好主意。想象一下,例如,机器上安装了两个不同的版本。你确定找到正确的吗?也许使用标准模块ConfigParser解析的配置文件会是更好的选择吗?
无论如何,要回到您的问题,为了找到文件或目录,您可以尝试使用os.walk 递归遍历目录树。
以下是从生成器调用os.walk
的示例,允许您收集第一个或所有匹配的文件名。请注意,生成器结果仅基于文件名。如果您需要更高级的过滤(例如,仅保留可执行文件),您可能会使用类似os.stat()的内容来扩展测试。
import os
def fileInPath(name, root):
for base, dirs, files in os.walk(root):
if name in files:
yield os.path.join(base, name)
print("Search for only one result:")
print(next(fileInPath("python", "/home/sylvain")))
print("Display all matching files:")
print([i for i in fileInPath("python", "/home/sylvain")])
答案 1 :(得分:0)
答案 2 :(得分:0)
Linux有which
,Windows有where
。它们都为您提供了可执行文件的路径,前提是它位于由控制台“搜索”的目录中(因此在Windows的情况下它必须在%PATH%中)