【问题标题】:Python: How can i find a directory that matches the first 3 characters from a string?Python:如何找到与字符串中的前 3 个字符匹配的目录?
【发布时间】:2015-03-27 13:33:31
【问题描述】:

我有一个目录,里面有 50 多个目录,名为 "XXX - something"

如果我有X = '123' 如何找到以'123'开头的目录?

【问题讨论】:

  • 我建议阅读glob
  • 请向我们展示解决此问题的任何尝试,Stack Overflow 不是代码编写服务。您可以从阅读 os 模块开始。
  • 为什么必须是 Python?
  • @Nsh 他不要求你写代码。他只是要求一个能够完成这项任务的图书馆
  • @Piotr Dabkowski 问题文本中没有任何内容表明他“只是在要求一个图书馆”。 “我如何找到以'123'开头的目录”并不意味着“建议一个库”。

标签: python string directory character


【解决方案1】:

你可以用os.walk试试这个

import os
[i[0] for i in os.walk('/path/to/directory/') if i[0].split("/")[-1].startswith(X)]

如果文件夹名称以X (your varibale)开头,它将递归返回文件夹/path/to/directory/中的list

[i for i,j,k in os.walk('/path/to/directory/') if i.split("/")[-1].startswith(X)]

【讨论】:

  • 谢谢,我最终使用了 os.walk。但是代码混乱,我会尝试您的解决方案,谢谢!
【解决方案2】:
import os, sys
folder = sys.argv[1]

folders = "ls -lh %s*" %(folder) 
os.system(folders)

通过folderseach.py 123运行代码

123 代表您要查找的文件夹

【讨论】:

  • 这个答案不是跨平台兼容的。这需要一个名为“ls”的二进制文件,它是 unix/linux/mac 的一部分。具体来说,这将在 Windows 上失败。
猜你喜欢
  • 1970-01-01
  • 2014-02-11
  • 2020-06-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多