gpt4 book ai didi

python - 使用 subprocess.check_output() 在 python 中搜索文件

转载 作者:太空宇宙 更新时间:2023-11-03 21:26:39 26 4
gpt4 key购买 nike

我正在使用 subprocess.check_output() 来运行基本的“ls”命令。根据我阅读文档后的理解,这个过程可以帮助从 python 域内运行 shell 命令。

假设我的示例文件夹是 home/,其中包含以下文件

  -rw-rw-r-- 1 aravind aravind     761 Dec  2 10:48 flux_acis_bare_479.dat
-rw-rw-r-- 1 aravind aravind 2426 Dec 2 10:49 flux_acis_bare_481.dat
-rw-rw-r-- 1 aravind aravind 759 Dec 2 18:46 flux_acis_hetg_479.dat
-rw-rw-r-- 1 aravind aravind 2178 Dec 2 18:45 flux_acis_hetg_481.dat

如果我从 shell 执行 ls 搜索关键字“acis”,自然会返回所有文件。

现在我想在 python 中做同样的事情。

以下是我的尝试

     import os
import subprocess

os.chdir("home/")
subprocess.check_output(["ls", "*acis*"])

两个“”、“”应该按顺序运行,我应该取回所有文件,因为结果是我的猜测。但是我得到的输出是文件未找到错误。

     Command '['ls', '*acis*']' returned non-zero exit status 2

免责声明:我已经查看了有关 subprocess.check_output() 的多个 Stack Overflow 问题,并尝试查看我的问题是否重复。如果我错过了什么,请告诉我。

最佳答案

正如@Ry-♦ 所说,glob是您正在寻找的模块。运行glob.glob("home/*acis*")将为您提供与模式匹配的文件和目录的列表。递归匹配,就像您想查找诸如 home/flux_acis_folder/something_else.dat 这样的文件,您可以使用glob.glob("home/*acis**", recursive=True)

关于python - 使用 subprocess.check_output() 在 python 中搜索文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53798435/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com