我如何找到给定文件的路径?

问题描述 投票:7回答:6

我有一个文件,例如“ something.exe”,我想找到该文件的路径。如何在python中执行此操作?

python
6个回答
12
投票

也许os.path.abspath()会这样做:

import os
print os.path.abspath("something.exe")

11
投票

使用os.path.abspath获取路径名的归一化绝对化版本使用os.walk获取它的位置


5
投票

如果您绝对不知道它在哪里,唯一的方法是从root c:\]开始找到它。

import os
for r,d,f in os.walk("c:\\"):
    for files in f:
         if files == "something.exe":
              print os.path.join(r,files)

2
投票

呃...这个问题有点不清楚。

您是什么意思?你有文件名吗?你打开了吗?它是文件对象吗?它是文件描述符吗?什么???

如果是名字,那么“查找”是什么意思?您是否要在一堆目录中搜索文件?还是知道它在哪个目录中?


2
投票

仅提及,完成此任务的另一种选择可能是subprocess模块,以帮助我们在终端中执行命令,如下所示:

import subprocess

command = "find"
directory = "/Possible/path/"
flag = "-iname"
file = "something.foo"
args = [command, directory, flag, file]
process = subprocess.run(args, stdout=subprocess.PIPE)
path = process.stdout.decode().strip("\n")
print(path)

使用此方法,我们将以下命令传递给终端:find /Posible/path -iname "something.foo"。之后,假设属性stdout是二进制字符串,我们需要对其进行解码,并删除结尾的“ \ n”字符。


0
投票

这确实是旧线程,但对于偶然发现此问题的人可能有用。在python 3中,有一个名为“ glob”的模块,它使用“ egrep”样式的搜索字符串并返回系统适当的路径(即Unix \ Linux和Windows)。

https://docs.python.org/3/library/glob.html

示例用法为:

© www.soinside.com 2019 - 2024. All rights reserved.