我有一个文件,例如“ something.exe”,我想找到该文件的路径。如何在python中执行此操作?
也许os.path.abspath()
会这样做:
import os
print os.path.abspath("something.exe")
使用os.path.abspath获取路径名的归一化绝对化版本使用os.walk获取它的位置
如果您绝对不知道它在哪里,唯一的方法是从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)
呃...这个问题有点不清楚。
您是什么意思?你有文件名吗?你打开了吗?它是文件对象吗?它是文件描述符吗?什么???
如果是名字,那么“查找”是什么意思?您是否要在一堆目录中搜索文件?还是知道它在哪个目录中?
仅提及,完成此任务的另一种选择可能是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”字符。
这确实是旧线程,但对于偶然发现此问题的人可能有用。在python 3中,有一个名为“ glob”的模块,它使用“ egrep”样式的搜索字符串并返回系统适当的路径(即Unix \ Linux和Windows)。
https://docs.python.org/3/library/glob.html
示例用法为: